2

i フレームを使用して、他のさまざまなページが「アプリ」として組み込まれている Web サイトを作成しました。

<iframe id="frame1" src="./app1.php">
<iframe id="frame2" src="./app2.php">

これらのアプリでは、非常に頻繁な HTTP リクエストの中でもとりわけ、JavaScript コードが実行されています。

$('#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);
});

どうやってやるの?あなたはなにか考えはありますか?

前もって感謝します。

4

3 に答える 3

5

フレーム 2内から試すことができwindow.parent.frame["frame1"].stop()、フレーム 1 で間隔をクリアする関数として stop() を定義します。

于 2012-10-02T14:33:56.053 に答える
4

すべての iframe には独自のウィンドウがあるため、使用できますwindow.onfocuswindow.onblur. 各 iframe 内にコードを挿入します。jsfiddle

var Handler ;
window.onfocus = function(){
         Handler = window.setInterval(getStatus, 100); //start status messages

}
window.onblur = function(){

  clearInterval(Handler );
}
于 2012-10-02T14:47:25.757 に答える
3

ページの読み込み時に両方の iframe が非表示になっていることを確認してください

でそれらを開くと

$('#app2button').click(function () { 

コンテンツをロードする JavaScript コードを追加する

$('#app2button').html().load()
于 2012-10-02T14:35:32.410 に答える