首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段简单的代码会在所有主流浏览器上崩溃?

为什么这段简单的代码会在所有主流浏览器上崩溃?
EN

Stack Overflow用户
提问于 2014-08-05 01:43:42
回答 1查看 443关注 0票数 0

我的目标是在屏幕上显示100个左右的URL中的一个几秒钟,以便在同一个浏览器选项卡中运行几周。

我有一个非常简单的PHP/HTML代码,它是通过元刷新来完成的,但是一旦我在选项卡中启动它,选项卡就会在24小时内崩溃,有时甚至在4-8小时内崩溃。这种情况在Chrome、Safari和Firefox上都会发生,不过Chrome的使用时间似乎最长。

为什么?

https://gist.github.com/evaldasalex/5a7ee5722daeaf001b79

EN

回答 1

Stack Overflow用户

发布于 2014-08-05 05:39:25

与使用元刷新方法相比,纯粹的客户端JavaScript或AJAX解决方案可能更适合您。

如果URL只是一个硬编码的列表,那么您的解决方案完全可以在PHP端完成;不需要JavaScript (除了提供原始的HTML和JS之外)。

下面是一个解决方案,它遍历URL列表,并在一段时间间隔后更新iframe:http://jsbin.com/lezuquma/1/edit?html,js,output

HTML:

代码语言:javascript
复制
<iframe id="fr" src="http://en.wikipedia.org/wiki/Main_Page"
        style="border: 0; width:100%; height:100%;" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe>

CSS:

代码语言:javascript
复制
html, body {
  height: 100%;
  width: 100%;
}

JavaScript (注意:使用jQuery ):

代码语言:javascript
复制
$(document).ready(function() {
  var urls = [
    "http://ImportOutpost.com",
    "http://blog.appannie.com/",
    "http://health.ucsd.edu/specialties/mindfulness/schedule/Pages/default.aspx",
    "http://www.treysmithblog.com/",
    "http://en.wikipedia.org/wiki/Matrix_(mathematics)",
    "http://www.cafepress.com/cp/info/sell/index.aspx?area=openashop&page=openashop",
    "http://www.fiverr.com/categories/writing-translation/",
    "http://mashable.com/mobile/"
  ];

  var frame = $('#fr');

  setInterval(function() {
    var currentUrl = urls.shift();
    urls.push(currentUrl);

    frame.attr('src', currentUrl); 
  }, 10000);
});

如果由于某种原因无法对URL进行硬编码,那么只需使用AJAX将URL从服务器检索到客户端,并使用我在上面刷新iframe时使用的相同方法。

我只让我的解决方案运行几分钟,所以如果你让它连续运行几个小时,它仍然可能崩溃。根据您选择的刷新间隔,这将是一个密集型操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25124513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档