【问题标题】:Introduce load time delay in chrome extension在 chrome 扩展中引入加载时间延迟
【发布时间】:2011-04-26 23:08:43
【问题描述】:

对于一个研究项目,我正在编写一个 chrome 扩展程序,当我转到某个 url 时,它应该会引入 2 秒的加载延迟。所以基本上我想要用户输入“example.com”的效果,他们必须在页面开始加载之前额外等待 2 秒。有什么办法可以用 chrome 扩展来做到这一点?我搜索了文档,但似乎找不到类似的内容。

【问题讨论】:

    标签: google-chrome tabs load google-chrome-extension delay


    【解决方案1】:

    Chris 的解决方案可行,但它锁定了 UI。你也可以试试这个简单的内容脚本:

    content_script.js:

    document.documentElement.style.display = 'none';
    setTimeout(function() {document.documentElement.style.display = '';}, 1000);
    

    manifest.json:

    {
      "name": "Delay webpage displays",
      "version": "1.0",
      "content_scripts": [
        {
          "matches": ["http://*/*"],
          "js": ["content_script.js"],
          "run_at": "document_start"
        }
      ]  
    }
    

    我必须说这很烦人。此外,精明的用户会知道有什么事情发生了,因为即使没有“等待 www.example.com...”状态行,它也会显示一个空白页面。

    如果您想完美模拟慢速网络,我认为最好的方法是创建一个引入延迟的 HTTP/HTTPS(或者可能是 SOCKS5)代理。您可以通过创建proxy.pac 文件或使用Chrome experimental proxy API 使浏览器仅在某些URL 上使用代理。

    那么你想模拟什么?如果要模拟高 CPU 的 JS 或者渲染,那就使用 Chris 的方案。如果要模拟慢速网络,请使用代理。我的解决方案有点模拟慢速网络,但这并不是完美的伪装。

    【讨论】:

    • 这是我目前的做法。我想模拟的是你提到的慢速网络,我考虑过使用代理,但它不适合我的目的,因为用户将能够分辨出差异,这是一个 HCI 实验,这很重要。跨度>
    【解决方案2】:

    在您的manifest.json 文件中,添加:

    "content_scripts": [{
        "matches": ["http://*.example.com/*"], // add in different URLs here
        "js": ["sleep.js"],
        "run_at": "document_start"
    }]
    

    并创建一个sleep.js 文件,其中包含:

    function sleep (seconds) {
        var start = new Date().getTime();
        while (new Date() < start + seconds*1000) {}
        return 0;
    }
    sleep(2);
    

    (来自phpjs

    因此,如果有人访问 www.example.com,页面将在加载前等待 2 秒。 但是,如果页面重定向到另一个页面,这将不起作用(example.com 会这样做,因此最好尝试不同的站点:))

    查看manifest docs 了解更多信息。

    【讨论】:

    • run_at 不再有效:​​((如果它曾经有效......刚刚找到这个答案)
    【解决方案3】:

    Chris 和 Yonran 的解决方案都不适合我。什么对我有用: What is the JavaScript version of sleep()?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-14
      • 2014-01-31
      • 2018-06-06
      • 1970-01-01
      • 2019-04-26
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多