9

innerHTMLおそらく250ミリ秒のリフレッシュレートが原因で、ブラウザがクラッシュするため、使用を避けようとしています。

いずれにしても、コンテンツを非表示<div>にして<div>、特定の条件が満たされた場合にのみ表示するようにしたいと考えています。これを回避するための最良のアプローチは何ですか?

基本的に、私が今やっていることは..

setInterval(function () {
    if (serverReachable()) {
        .... // lines of code
        .... // lines of code
    var changeIt = document.getElementById('change')
    changeIt.innerHTML = '';
           timeout = setInterval(function(){window.location.href = "Tracker.html";},5000);
        }
    } else {
        clearTimeout(timeout);
        timeout = null;
    var changeIt = document.getElementById('change')
    changeIt.innerHTML = 'offline';
   }
}, 250);

innerHTML「オフライン」ではなく全体を印刷するために使用しているため、これによりブラウザがクラッシュします<div><div>これを非表示にして、 を使用する代わりにinnetHTML、条件が満たされた場合 (この場合はインターネット接続がない場合) に単純に再表示したいと考えています。

4

5 に答える 5

12

次に、CSSを使用してdivを非表示および再表示します。あなたはこのようなことをすることができます:

    changeIt.style.visibility = 'hidden';

divを非表示にします。と

   changeIt.style.visibility = 'visible';

もう一度見せます。

于 2012-12-30T17:40:29.940 に答える
7

displaydivの CSS プロパティを に設定しnoneます。

https://developer.mozilla.org/en-US/docs/CSS/display

Javascript を使用してプログラムで設定する例: http://jsbin.com/ezanuv/1/edit

于 2012-12-30T17:39:04.563 に答える
3

displayプロパティをnoneに設定するか、visibilityプロパティをhiddenに設定することができます。

于 2012-12-30T17:41:26.810 に答える
0

最善の方法は、非表示の場合は表示なし、表示の場合はブロックを設定することです

//要素は、非表示または表示する div です

element.style.display = (element.style.display == "ブロック") ? "なし": "ブロック";

于 2013-01-20T19:20:06.487 に答える