我的目标是在屏幕上显示100个左右的URL中的一个几秒钟,以便在同一个浏览器选项卡中运行几周。
我有一个非常简单的PHP/HTML代码,它是通过元刷新来完成的,但是一旦我在选项卡中启动它,选项卡就会在24小时内崩溃,有时甚至在4-8小时内崩溃。这种情况在Chrome、Safari和Firefox上都会发生,不过Chrome的使用时间似乎最长。
为什么?
发布于 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:
<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:
html, body {
height: 100%;
width: 100%;
}JavaScript (注意:使用jQuery ):
$(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时使用的相同方法。
我只让我的解决方案运行几分钟,所以如果你让它连续运行几个小时,它仍然可能崩溃。根据您选择的刷新间隔,这将是一个密集型操作。
https://stackoverflow.com/questions/25124513
复制相似问题