2017-01-04 12 views
0

setTimeout、setInterval、および他のタブまたはウィンドウでWebページを開いたときにDOMがロードされたときにトリガーするその他の機能に何が起こっているのでしょうか。バックグラウンドでも、DOMが読み込まれると、実際にウェブページが表示されるか、トリガーされますか?これはブラウザによって異なりますか?新しいタブとタイムアウトでWebページを開く

+2

これらは、ページがロードされると1回だけトリガーされます。ドームの再構築では、トリガーされません。 –

答えて

1

少なくともChromeとOperaでは、ページがバックグラウンドで読み込まれていても、のコールバックが実行されます。

は、次のHTML

<a href="javascript:openWindow()">Click me!</a> 

とそれぞれのJavaScript

function openWindow() 
{ 
    var article = open(''); 
    focus(); 

    article.setTimeout(function(){ article.alert("Hello"); }, 3000); 
} 

を(this fiddleを参照)考えてみましょう。

Ctrlキーを押しながらリンクをクリックすると、Chromeは新しい背景タブを開きます。まだalertが3秒後に表示されます。同じビビウールはOperaで見ることができます。私もEdgeを試しましたが、ページがバックグラウンドタブで開かないため、JSがまだ実行されているかどうかはわかりません。

+0

たとえば、iPhoneのChromeでタブを開いてアプリから出てしまうとどうなるか知っていますか?機能はまだバックグラウンドで実行されていますか? – uksz

+0

ちょうどそれをフィドルで一撃してください。私はChrome @ Androidで試したところ、バックグラウンドでタブを開いたときにアラートが表示されませんでした。 –

+0

@ukszと私の答えを正しいものとしてマークすることを忘れないでください;) –

関連する問題