我已经编写了一个Chrome扩展程序来清除TYPO3 CMS缓存,直接从浏览器的地址栏中删除。如何防止在Chrome扩展程序中重新加载页面?
现在我想添加一个可选功能,在页面刷新时自动清除缓存。这意味着,当用户按下F5时,CTRL + R,单击工具栏中的重新加载图标或在上下文菜单中单击以“重新加载”,首先执行我的ajax脚本(清除CMS缓存),之后页面可能会重新加载。
有没有可能通过Chrome API来做到这一点?
我首先尝试了内容脚本中的window.onbeforeupdate
事件 - 这种情况总是在页面重新加载时触发,而且如果我关闭窗口或切换到另一个网站,则会触发此事件。此外,我不能告诉浏览器在这里等待我的ajax请求。
什么是作品是检查document.onkeydown
事件密钥116(F5)和82(R)与控制键和使用event.preventDefault()
。但是这不会涵盖刷新缓存的其他两种可能情况。
谢谢!
为什么不接受'onbeforeupdate'作为解决方案?恕我直言,如果窗口关闭或用户移动到另一个站点,缓存也将被清除并不重要。此外,你似乎没有必要等待Ajax响应。你的意思是说浏览器并没有提供足够的时间来发送Ajax请求吗?您是否将背景长轮询或Websockets连接视为保持缓存的实时标记?一旦连接断开,高速缓存可以清除。 – Stan
嗯,我试过'onbeforeupdate',但是因为任何原因它没有被刷新,当刷新页面。不,我没有足够的时间来启动ajax请求,但重新加载页面并模拟清除缓存没有意义。清除缓存后必须重新加载。 – Armin
哦,我认为有可能暂停页面刷新,直到服务器允许它发生,也就是在缓存被实际清除之后(如果我理解正确的话)。至少,这可以分两步进行,而不是一次(这意味着要自行刷新)。 – Stan