質問

私は、次の何の機能を持っています

function test() {
    document.getElementById("main").innerHTML="show wait";

    // do stuff

    document.getElementById("main").innerHTML="show finished";
}

はFFのdivは、「ショー待ち」と表示4秒間、他のものを行うとします その後、「完成ショー」を示します。

でIEはそれが唯一の「完成ショー」が表示されます。私は「やるもの」の後または前に警告を()に置く場合、それは「ショー待ち」と表示されます。

私はそれを解決するために行うことができます、私は他のソリューション、私は機能を分割することができます知っていますか?

役に立ちましたか?

解決

それが動作しない理由のために読むリチャードの説明。解決策については、 迅速なハックます:

function test() {
    document.getElementById("main").innerHTML="show wait";

    setTimeout(function(){
        // do stuff

        document.getElementById("main").innerHTML="show finished";
    },1)
}

は理由この作品は、出口スクリプトの実行モードにブラウザを許可後に、それによって実行され、setTimeoutテキストを画面上に描画することができるようにDOMレンダリングモードに入るべきこと"show wait"スケジュール「ものを行う」コードです。

他のヒント

あなたがブラウザへの制御のスレッドを返すまで、

IEは、すべての更新が表示されません。警告への呼び出しは、この(ユーザーアクションのスクリプトの待機)を行います。

のいずれかを使用すると、実行のスレッドを持っていながら、目に見えるUIの変更に依存している、または実行のスレッドを返す(簡単に)した後、あなたのスクリプトの2番目の部分を継続するためにタイマーを使用してのような何かをしないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top