問題タブ [freeze]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JavaScript で Web サービスを呼び出すと、ブラウザでホワイト スクリーン オブ デス (WSOD) が発生する
仕様は次のとおりです。
- ASP.NET AJAX を使用する ASP.NET 3.5
- AJAX コントロール ツールキット
- jQuery1.3.2
- ウェブサービス
- Windows Server 2003 SP1 上の IIS6
- SP1 SQLServer 2005 SP3 サイトは SSL です
- Infragistics Web Components 2009 Vol. 2 (Aikido 以外のコントロールを使用)、UltraWebGrid および Tree コントロールが主に使用されます。
問題は次のとおりです。IE 7/8 でホワイト スクリーン オブ デス (WSOD) が表示されます。基本的に、各アコーディオン ペインのコンテンツが Infragistics Tree Control である AJAXControl Toolkit アコーディオン コントロールを持つ左ペインを持つページがあります。右側のペインには、左側のメニュー ペインでクリックされた内容に基づいてコンテンツがリロードされる があります<div>
。<iframe>
では<iframe>
、左ペインのメニュー項目をクリックすると、1 つまたは複数の UltraWebGrid コントロールを含むページがロードされます。すべてのグリッドには、テンプレート化されたボタン列があります。グリッド行の編集ボタンをクリックすると、レコードを編集するためのポップアップ ウィンドウが開きます。これは約 10 回は正常に機能し、10 回目 (場合によってはそれより前) にポップアップ ウィンドウが開き、アドレス バーに正しい URL が表示されますが、ページは読み込まれません。
1 つのポップアップ ウィンドウを使用してレコードを更新するアプリケーションがあります。ほとんどの場合、[編集] ボタンをクリックしてレコードを編集すると、ポップアップ ウィンドウが開き、更新ページが読み込まれます。ただし、レコードをしばらく編集した後、突然ポップアップ ウィンドウが開きますが、空白のままでハングします。URLはアドレスバーにあります。
Fiddler をロードすると、更新ページの要求が送信されないことに気付きました。これは、クライアント側での何らかのロックアップであると思われます。ポップアップ ウィンドウにある同じ URL を新しいブラウザ ウィンドウにコピーすると、通常、ページは正常に読み込まれます。
観察事項: - リクエストがサーバーに送信されることはないため、クライアント側またはブラウザに関連するものであることは間違いありません。- サイトにトラフィックの類似性がある場合にのみ発生するように見えますが、これは奇妙なことです。これはクライアント側のコードに含まれているように見えるためです - バックグラウンドで数秒ごとに呼び出されている Web サービスがあり、ユーザーがログオンしているかどうかをチェックしています、しかし、これはフリーズを引き起こしません。
私はここで本当に途方に暮れています。私は WSOD をググりましたが、私の特定の WSOD に関連するものはあまりないようです。何か案は?
何が問題なのか
そのため、メモリ リーク (クライアント側で一部を封印しましたが) は問題ではないことがわかりました。問題は、クライアント側で Web サービス呼び出しが行われていることです。(別のウィンドウと同期するために) ユーザーが 4 秒ごとにログオンしているかどうかを確認するものがあります。次に、ポップアップ ウィンドウとグリッド状態のユーザー設定を取得するための Web サービス呼び出しがあります。私が読んだことから、Web サービスは非同期でなければなりません。成功/失敗のコールバックを使用して JavaScript から呼び出すことで、非同期であると想定しましたが、実際にはそうではありません。クライアント側/ブラウザーの観点からは非同期ですが、サーバー側からは、Web サービスへの呼び出しが行われ、接続数が限られているため、他の操作を保留して完了すると返されます。
では、Web サービス メソッドを非同期にする最も簡単な方法は何でしょうか? Web サービスを WCF Web サービスに変換する必要がありますか? それとも、既存の ASP.NET Web サービス呼び出しを使用できますか?
そして、歴史的な目的のために、ここに私が最初に問題があったと思ったものがあります:
これをローカルまたはテスト サーバーで再現することはできませんでした。しかし、Fiddler を使用してモデムの速度をシミュレートすると、突然、ローカル PC で WSOD を複製できるようになりました。そのため、少なくとも私のテスト環境では、ポップアップウィンドウを開くと、接続が遅くなったり一時的に遅くなったりして、チョークが発生するように見えます.
アドオンなしで IE を実行して別のテストをiexplore.exe -extoff
行いましたが、結果は同じでした。また、iframe の URL が変更されるたびにページ上の iframe が再作成される問題も修正しました。私の論理の一部が省略されました。これで、iframe は 1 回だけ作成されます。その後、src
新しいコンテンツをロードしたいときに属性のみが更新されます...私の間抜け。JavaScript クロージャーでいくつかのウィンドウ参照が残っていることに気付きました。そのため、それらを使い終わったときに、クロージャーでそれらが明示的に null に設定されるようになりました。
また、メモリ リークの調査もいくつか行いました。 /library/wa-memleak/?S_TACT=105AGX52&S_CMP=cn-a-wa
Crockenator の IE メモリ リークのパージ コードを追加しました ( http://www.crockford.com/javascript/memory/leak.htmlを参照)。
$(document).ready(function() { function purge(d) { var a = d.attributes, i, l, n;
});
私の改善のどれも問題を解決していません。私のローカルテストシナリオで。何か案は?誰?誰?ビューラー?
最後の更新
セッション状態が Web サービスの問題の原因であることを指摘してくれた David に感謝します。「ASP.NET はすべての要求を同じ「セッション」にキューに入れます。そのため、最初の要求が長時間ブロックされると、他のキューに入れられた要求が保留になります。」
そのため、セッション状態を使用して Web サービスを最小限に抑えることを試みましたが、Microsoft が推奨する接続数の設定も追加しました。http://msdn.microsoft.com/en-us/library/ff647786.aspxを参照してください。 #scalenetchapt10_topic9
wpf - WPF デバッグで Windows 7 64 ビットのコンピューターがフリーズする
Windows 7 64bit で Visual Studio 2010 を使用しています。
基本的に子供でも作れる簡単なアプリケーションをコンパイルして実行しました。実行を開始した瞬間、コンピューターがフリーズし、応答しなくなりました。これは、毎回、すべてのアプリケーションに対して継続して行われます。
なぜこれが起こっているのですか?
linux - Linux プロセス ハングの問題のデバッグ ユーティリティ?
構成管理を行うデーモンプロセスがあります。他のすべてのプロセスは、機能するためにこのデーモンと対話する必要があります。しかし、大規模なアクションを実行すると、数時間後にデーモン プロセスが 2 ~ 3 時間応答しなくなります。そして2~3時間後、正常に動作しています。
Linux プロセス ハングの問題のデバッグ ユーティリティ?
Linux プロセスがハングするポイントを取得する方法は?
delphi - delphiアプリがwin7システム全体をフリーズする
1行あたりの単語の長さに従ってテキストファイルを並べ替える簡単なプログラムがあります。このプログラムは、xpベースの古いマシンで問題なく動作します。このプログラムを新しいwin7 / Intel Core i5マシンで実行すると、システム全体がフリーズし、通常の状態に戻ります。それが終わった後、それは仕事です。
コードを調べて、フリーズの原因となっている行を見つけました
それはこの特定の行でした...
私はそれをに変更しました
凍結はありません
それから私はそれをに変更しました
そしてそれは再び凍結します
私の手順コードは
理由は何ですか?そしてそれを修正する方法は?私はdelphi2007/win32を使用します
c# - BackgroundWorker が原因でアプリケーションがハングすることがある
BackgroundWorker を使用して一連のテストを実行する Form があります。ProgressChanged イベントを使用してメイン スレッドにメッセージを送信すると、メイン スレッドが UI のすべての更新を行います。コードをくまなく調べて、バックグラウンド ワーカーの UI に何もしていないことを確認しました。私のコードには while ループがなく、BackgroundWorker の実行時間は有限です (秒または分で測定されます)。ただし、何らかの理由でコンピューターをロックすると、再度ログインするとアプリケーションがハングすることがよくあります。問題は、これが発生したときに BackgroundWorker が実行されていないことです。ただし、BackgroundWorker に関連していると思われる理由は、アプリケーションが読み込まれてから BackgroundWorker が実行された場合にのみフォームがハングするためです (特定のユーザー入力が与えられた場合にのみ実行されます)。
RunWorkerAsync メソッドを使用して UI の TreeView からこのスレッドに TreeNodes のリストを渡しますが、ワーカー スレッドでこれらのノードを読み取るだけです。
ワーカー スレッドで Thread.Sleep を使用して、定期的にテストを実行します (これには、ワーカー スレッドで作成されていない TCP ソケットを介したメッセージの送信が含まれます)。
アプリケーションがハングする理由について、私は完全に困惑しています。私はどこかで何か「違法」なことをしていると確信しています。
winapi - Win32: ユーザーがウィンドウのサイズを変更している間、アプリケーションがフリーズする
私はwin32アプリケーションを書いています。私はこのようにメッセージループを自分で実装しました:
アプリケーションにサイズ変更可能なウィンドウがあります。通常、IdleProcess() は 1 秒間に数回呼び出されます。ユーザーがサイズ変更可能なウィンドウの隅または端をつかむと、ユーザーがマウス ボタンを離すまで、IdleProcess() は呼び出されなくなります。
そこで何が起こるの?
内部のwhileをifで入れ替えてみましたが、挙動は変わりません。サイズ変更が開始されると、そのメッセージのハンドラーはサイズ変更が完了するまで返されないようですか?
これを変更して、1 秒あたり数回サイズ変更中に IdleProcess() を呼び出す方法はありますか?
ありがとうマーク
編集:
内部の while を if に置き換えることの意味は次のとおりです。
私のウィンドウ Proc は少し長いですが、小さなテスト アプリでも同じ動作が得られます。これは、VS プロジェクト ウィザードが作成する wndproc と同じです。
iphone - iPhoneでUIをブロックする方法
スリープを使用せずにUIスレッドをブロックするにはどうすればよいですか?
明確にするために:ユーザーのUIがフリーズすることは理解していますが、それがアイデアです。
空のRunLoopsを実行できますか?その他の方法。
delphi - Delphi 2010 が起動時にフリーズする
テスト用に試用版の Delphi 2010 をセットアップしました。数日後、起動してフリーズします。「購入方法」が記載された Web ページと、右側に最後に編集されたプロジェクトが表示されます。しかし、Delphi のウィンドウはマウス イベントには反応しません。
再インストールして修復しようとしました。
それで…どうすればいいの?そのプロジェクトに問題のあるファイルがあるか、IDE の設定が正しくない可能性がありますか? あなたはなにか考えはありますか?
c# - XP/2003 サーバーではなく、Vista/7 で C# アプリケーションがフリーズする
XP 開発マシンで正常に動作する C# アプリケーションを作成しました。クライアントが別の PC で実行している場合、vista と 7 の両方のマシンでフリーズするようです。vista/7 で dotnet アプリケーションを実行する際に問題があるかどうかを知りたいです。フレームワーク 2.0 と 3.5 の両方のアプリケーションをコンパイルしましたが、役に立ちませんでした。ログファイルも役に立ちません。アプリケーションがフリーズしている場所を知る方法はありますか (もちろん、クライアントにはアプリケーションに接続するための VS がありません)。よろしくお願いします。
ピエール。
iphone - UIViewController を UINavigationController にすばやくプッシュする方法
私は複数のビューベースのアプリケーションを持っています。問題は、1 つの UIViewController をプッシュすると (実際のデバイスでテストした場合のみ) デバイスが 1 秒か 2 秒間フリーズすることです。 UITextField とボタンが 1 つだけあります。これは、ビューが最初にプッシュされたときにのみ発生し、その後、ビューはスムーズにプッシュされます。
これを回避する方法についてのアイデアはありますか?