我制作了网站,其中包含i帧的“应用程序”内置了各种其他页面:
<iframe id="frame1" src="./app1.php">
<iframe id="frame2" src="./app2.php">
在这些应用程序中,执行了javascript代码,其中包括非常频繁的HTTP请求。
$('#app1button').click(function () {
//Here i have to stop the HTTP-Requests which where fired from the JS of App2
hideAllApps();
showApp(app1);
});
app1非常频繁地从服务器轮询信息:
app1.php里面有Javascript ::
Handler = window.setInterval(getStatus, 100); //start status messages
当我现在点击app2时,另一个应用程序弹出,我想停止由于性能原因加载到app1.php中的javascript。
$('#app2button').click(function () {
//Here i have to stop the HTTP-Requests which where fired from the JS of App1
hideAllApps();
showApp(app2);
});
我该怎么做?你有什么想法吗?
提前致谢。
答案 0 :(得分:5)
从第2帧开始,您可以尝试window.parent.frame["frame1"].stop()
,在第1帧中,您可以将stop()定义为清除间隔的函数。
答案 1 :(得分:4)
由于所有iframe都有自己的窗口。您可以使用window.onfocus
。 window.onblur
。将代码放在每个iframe中。 jsfiddle
var Handler ;
window.onfocus = function(){
Handler = window.setInterval(getStatus, 100); //start status messages
}
window.onblur = function(){
clearInterval(Handler );
}
答案 2 :(得分:3)
确保两个iframe都隐藏在页面加载
上一旦用
打开它们$('#app2button').click(function () {
添加javascript代码以使用
加载内容$('#app2button').html().load()