3

最愛のブラウザー IE (すべてのバージョン) と jquery のタブ UI コントロールに問題があります。ajax オプションを使用して、タブのコンテンツを読み込みます。問題は、同期的にそれを行う必要があるため、次のリクエストが非同期になることです。私にはうまくいかないか、非常にバグがあります。しかし、これは問題ではありません。問題は、IE が jquery コードを実行するたびにロックダウンする前に ui-state-processing を適用しないことです。ここでの IE の動作は、他のすべてのブラウザとは異なるようです。リクエストが処理されて処理が完了すると、クラスがタブ要素に適用され、すぐに消えてすべてが完了すると、奇妙な原因になります。

誰かこれが何であるか考えていますか? 既知の問題?

ところで、async オプションを true に設定すると完璧に動作します。

ティー

4

1 に答える 1

3

はい、これが IE の機能です。基本的に、ブラウザは次のように機能します。

while (stillRunning()) {
    renderDOM();
    getNextInputEvent();
    runScripts();
}

つまり、スクリプトの実行が完了するまで DOM は更新されません。現在、IE でさえ DOM を順不同で更新する場合があります (alert() または confirm() の実行のみが思い浮かびます) が、通常はそうではありません。他のブラウザーは時々 DOM を順不同で更新しますが、これはあなたが遭遇しているものです: 非 IE ブラウザーがスクリプト実行段階でスタックしているにもかかわらず DOM を更新している場合 (同期を行っているため)呼び出し、戻り値を取得するまでスクリプトは終了しません)。

もちろん、非同期で実行すると、ブラウザーがスクリプト実行段階でスタックすることはないため、UI を自由に更新できます。

これが、ほとんどの Web アプリが非同期呼び出しを使用する理由です。それらを実行してもインターフェイスがフリーズしないためです。

于 2009-10-07T18:41:48.190 に答える