3

私はjavagwtで書かれたWebアプリケーションを持っています。IE8でWebサイトを開くと、「このページのスクリプトが原因でWebブラウザーの実行が遅くなっています」というメッセージが常にポップアップ表示されます。このメッセージはIE8でのみ表示され、FFやChromeでは表示されません。

アプリケーションはjavagwtで書かれているので、javascriptコードをデバッグするのはかなり難しいので、問題を特定する別の可能性はありますか?

アプリケーションには多くの非同期呼び出しもあり、データベースが問題になる可能性がありますか?

4

3 に答える 3

9

このメッセージは、JavaScript がブラウザ スレッドをかなり長い間ブロックしていることを意味します。

IE8 でのその実装は本当にばかげています。実行する JavaScript コード (命令) の行数をカウントし、特定のしきい値に達すると、このメッセージが表示されます。

実際、この制限は Windows レジストリで設定されており、デフォルトでは 5000000 などです。もちろん、これは推奨される解決策ではありません。

このメッセージを回避する方法の 1 つは、GWT DeferredCommand を使用することです。実行中の作業を IE8 ガード制約をトリガーしないほど小さいチャンクに分割できれば問題ありません。また、複数の非同期リクエストを可能な限り少数にマージし、レンダリング ロジックを改善して、ウィジェットから UI バインダーまたはプレーン DOM に移行する可能性があります。

これは関連する質問です ( Internet Explorer で実行時間の長いスクリプト メッセージを無効にする)

于 2013-02-12T17:05:06.160 に答える
1

私は少し同意しません- 「Java gwtはjavascriptコードをデバッグするのがかなり難しい」

スロー スクリプトの警告を無効にするためのMSDN の記事では、問題が隠されているだけです。

遅いスクリプトの警告は、大量の for ループまたは深い再帰呼び出しがある場合に発生します。これは 2 つのシナリオで発生する可能性があります -

1) Poorly coded client side processing logic - example tree navigation
2) Deep object graph in rpc.

慣れれば問題箇所をすぐに切り分けることができます

1) Speed Tracer の使用 - https://developers.google.com/web-toolkit/speedtracer/

2) GWT ロギングの使用 - https://developers.google.com/web-toolkit/doc/latest/DevGuideLogging

3) Chrome Dev Tools と Firebug を使用してタイムラインやプロファイリングなどをキャプチャする

4) IE8 にはプロファイリングがありますが、遅くて面倒です。

5) プロファイリング時に OBF モードの代わりに GWT Pretty モードを使用します。

コードのどの部分が遅いスクリプトの警告を引き起こしているかを確認したら、それを修正するだけです。

于 2013-02-12T14:23:40.147 に答える
0

一部のスクリプトは実行に非常に時間がかかる場合があるため、Internet Explorer は、低速のスクリプトの実行を続行するかどうかを決定するようユーザーに求めます。

生成された Cache.js Javascript ファイルのサイズが大きい場合、そのメッセージが表示されることがあります。

Internet Explorer バージョン 4.0、5.0、6、7、および 8 のメッセージ ボックスには、

MS ブログでこの記事を読む

そして、以下の質問を参照してください

このページのスクリプトが ie の実行速度を低下させています

于 2013-02-12T13:50:09.450 に答える