2011-02-01 21 views
0

jquery、ajax、phpを使用して私の会社のイントラネットを更新しようとしています。サイトの一般的な側面は、divにロードされた上部のドロップダウンメニューと、ドロップダウンメニューでクリックされたページをロードするコンテンツdivです。問題は、内部のコンテンツがタブメニューを持っているページを読み込んだとき、タブがクリックされたときに何をするかが、フォームのhtml構造ページをロードしてPOST呼び出しで埋め込むことです。jquery/ajax限界とキャッシュ管理に関する一般的な質問

質問は、プリロードするのではなく、要求されたときに正しいロードデータであり、ウェブの多くの例に見られるように呼び出されたときに表示されますか?自分のやり方で働いているので、たくさんのデータがキャッシュされているので、何かデータを確認するためにクリックすると、1つではなく複数のデータが要求されます。 この言語で作業するにはどうすればよいですか?私は私の目標ソリューションは、ここで、ネイサンIにより、すべての形態のため1時間で予圧すべてのデータを示唆した見つける

はコードです:

$("#div_0").show(); 
     $("#scheda_eti > div").css({"background-color": "white", "color": "black","cursor":"hand"}); //tabs div 
     $("#"+schemi[0]).css({"background-color": "red", "color": "white","cursor":"default"}); 
     for (var x=0; x<schemi.length; x++) 
     { 
      $("#div_"+x).load("./schemi/sch_"+schemi[x]+".php", {azione: "vedi"}); 
     } 
     $.post("./php/global.php", 
      {azione:"vedi", contratto: $("#suggest_hidden").val() }, 
      function(xml) 
      { 
       if ($("status", xml).text()=="1") 
       { 
        $(xml).find("form").each(function() 
        { 
         var id_form=$(this).attr("id"); 
         scorriDati(xml, "form_"+id_form); 
        }); 
       } 
       else 
       { 
        $("#scheda_ris").html("<img src='./img/validno.png' alt='errore'> <span style='color:red'><p>Attenzione!<br>codice non trovato!</p></span>"); 
       } 
       $(xml).find("errore").each(function() 
       { 
        $("#scheda_ris").append("<img src='./img/validno.png' alt='errore'> <span style='color:red'>"+$(this).text()+"<br></span>\n"); 
       }); 
      },'xml' 
     ); 

あなたは私の以前の記事に見CAいくつかのコードを確認するにはここにリンク: question1 question2

事前のおかげで

CIAO 時間

+0

私はあなたの質問/問題をよく理解していません。 AJAXの要点は、要求に応じてロードすることです。 AJAXの事前ロードはAJAXの目的を破っているようです。 –

+0

私はそれも、しかし、すべてのコードは、タブのメニューを作成するためにタブのメニューを作成するために、Web上で見つけるすべてのコードは、タブとコンテンツを隠しdivのすべてのデータをクリックしたときに表示されます、今やっきりしないかもしれません英語は私の母国語ではありません.. – haltman

答えて

1

私は「プリロードするのではなく、要求されたときに正しいデータをロードして呼び出されたときに表示するのですか?別のタブに切り替えるときにユーザーが好みますか? "

  1. 遅延なし(初期ページのロード時にロードされているすべてのコンテンツ)
  2. 短い遅延(新しいタブのコンテンツのAJAXのルックアップ)
  3. 全ページのロード(フル往復、不要アヤックス)

多くの場合、第1または第3のアプローチで良い結果が得られます。 Ajaxを使いすぎないでください。

ここにはa blog rant about overuse/correct use of Ajax ...私はそれを正直に読んでおらず、必ずしもすべてを保証するわけではありませんが、役立つかもしれません。

+0

私はあなたの最初の提案を使用しました!今すぐ私のコードで私のポストを修正します – haltman

+0

素晴らしい、あなたはそれが働いているかどうか疑問に思っていた! – Nathan

+0

@haltmanと@Nathan:私は個人的に1と2のハイブリッドを提案します。太陽の下のすべてを事前にロードすることは、決して使用されることのないたくさんのものの世代時間を増やすだけなので、悪いことです。その代わりに、一般的に使用されているデータをプリロードし、必要に応じて必要のないコンテンツをサイドロード(ajax参照)する必要があります。あなたは応答時間と負荷時間の良い組み合わせを保つそのように... – ircmaxell

2

私はあなたが探しているのはjQuery UI Tabsだと思います。コードにjQuery UIを含める必要があります. jQueryの後にはとなります。

注文:

<link rel='stylesheet' href='http://jquery-ui.googlecode.com/svn/tags/latest/themes/ui-lightness/jquery-ui.css' /> 
<script src='http://code.jquery.com/jquery-latest.min.js'></script> 
<script src='http://jquery-ui.googlecode.com/svn/tags/latest/ui/minified/jquery-ui.min.js'></script> 

あなたはUIの明るテーマが気に入らない場合、あなたはTheme Galleryからいずれかを選択することができます。たとえば、のUIの暗さがの場合は、ui-lightnessを小文字のテーマ名で置き換え、スペースではなくハイフンで置き換えます。

関連する問題