0

我创建了一个测试Web服务器,我用它来充当各种“网页过滤器”。我正在尝试创建一个使用webRequest API的扩展程序,以确保我的Web服务器允许或阻止所有传入的URL。Chrome扩展webRequest异步调用的同步行为

要做到这一点,我从webRequest到我的web服务器进行AJAX调用,我想使用响应来确定是否阻止或允许指定的URL。问题是,webRequest方法是异步的,并且AJAX调用是异步的,所以我不能等待来自服务器的响应。

我也不能在localStorage中存储所有被阻止/允许的URL,因为可能有成千上万个URL。我试过在jQuery的AJAX实现中使用jQuery的async: false属性,但当数百个请求同时发生时,这使得浏览器几乎完全无法使用。任何人有任何想法,我可以如何解决这个问题?

编辑:我知道类似的问题已经被问到过,但没有任何可行的解决方案来解决我所见过的这个问题。

回答

0

我只看到两个不错的选择:

  1. 使该网站的webproxy
  2. 使用unlimitedStorage许可,并存储在数据库中的WebSQL的URL(它也是最快的)。尽管人们普遍担心它在W3C停止开发支持IndexedDB的规范后可能会在Chrome中被弃用,但我认为它不会很快发生,因为全部是其他可用存储选项要么[慢]要么慢功能。