2011-07-26 17 views
0

私のWeb開発プロジェクトは、JSONとAJAXを介して多くのコンテンツを読み込みます(これらは基本的に同じものではありません)。jQuery UIを改善するすべてのページロード用のajax読み込みダイアログ

私は、jqueryのUIダイアログでロードgifのポップアップを実装しました。これは、.ajaxStart.ajaxStopイベントに接続されます。

$(document).ready(
     function() { 
      $(window).load(function() { Load(); }); 
.... 

function Load() { 
.ajaxStart(function() { 
//Show popup 
} 
.ajaxStop(function() { 
//Hide popup 

}

だから、これはかなり良いですし、いつでも私はロードが表示されたポップアップAJAXを介してコンテンツをロードしています。すばらしいです。私の次の質問は、フィードバックが届いているということです。彼らは、このコンテンツの読み込みが奇妙だと思っていますが、Webアプリケーションで新しいページ全体をリクエストすると、「読み込み」に時間がかかり、読み込みダイアログがありません他のajaxの読み込みの例のように。個人的に私に - これは完璧な意味がありますが、ユーザーはそれを気に入らないのです。

同じダイアログをページの読み込みに接続する簡単な方法はありますか?彼らが新しいページをリクエストしたときにjqueryイベントを知る方法があると思っているのですが、新しいページがロードされるまでロードダイアログをポップアップしてそこに残すことができます。

お礼ありがとうございました。

ありがとうございました。

答えて

2

確かに、アンロードイベントをチェックしてください。 http://api.jquery.com/unload/

だから、文字通り準備ができてあなたの文書で

$(window).unload(function() { Load(); }); 

をチャックし、ユーザーが新しいページに移動するとき、それは(あなたが任意のAJAX要求を必要としないので、それをカスタマイズする必要がある場合がありますポップアップを紹介しますどのデータも動的にロードしていないとみなします)。

+0

実際、これはFirefoxでは動作しますが、IEでは動作しません!私は、モーダルウィンドウを構築するために同じコードを使用しています。これはIEでajaxロードを表示しますが、何らかの理由でIEがアンロードイベントを再生したくないようです。... Hmmmmmmmm ....... – baron

+0

アンロードはうまくいきます - 私は警告を出しますが、jqueryUiコードに '$("#dialog ")ダイアログをロードさせません(dialogue( 'open');'(ただしこのイベントの場合のみ - .ajaxStart !?!?) - IE8の互換モードでの回避策 – baron

0

現在のドキュメントのアンロードと次のページの読み込みとの間にかなりのギャップがあるため、次のページが読み込まれるまで読み込みダイアログを残すことはできません。

あなたのサイトが完全にajaxだったらあなたはそれを行うことができますが、サイトを完全にajax駆動すると細部に注意を払います(バックボタンのサポート、ブックマーク、イベントなど)ので、パス。

関連する問題