2011-09-13 9 views
0

私は(それが動作しますが、我々は3-4回をクリックしたときに、私のブラウザは多分による巨大な変数に、frezzes)このコードを試してみました:jQuery/AJAX - 複数のdivとページタイトルを読み込むには?

のFirefox 6.0、クロム、およびSafari 5 ...

でテスト
var elements = [ "content", "menu" ]; 
$.get(
    url, 
    function(data) 
    { 
     // Elements 
     var resp = $("<div></div>").html(data); 
     $.each(
      elements, 
      function(i, v) 
      { 
       var content = resp.find("#"+v); 
       $("#"+v).html(content); 
      } 
     ); 
     // Title 
     var regexp = /<title>(.*)<\/title>/i; 
     document.title = data.match(regexp)[1]; 
     // Change URL 
     history.pushState({ page: url }, url, url); 
     // Hiding loading div 
    } 
); 

私は.LOAD()関数を使用するかもしれないと思うが、私は一つだけ負荷で複数のdivをロードすることはできません...

、次のコードが動作していない:

var resp = $("<div></div>").load(url+" #content, #menu"); 
var content = resp.find("#content"); 
$("#content").html(content); 
var menu = resp.find("#menu"); 
$("#menu").html(menu); 

ありがとうございました!それは

var elements = [ "content", "menu" ]; 
$.get(
    url, 
    function(data) 
    { 
     // Elements 
     var resp = $("<div></div>").html(data); 
     $.each(
      elements, 
      function(i, v) 
      { 
       var content = resp.find("#"+v); 
       $("#"+v).html(content); 
      } 
     ); 
     // Title 
     var regexp = /<title>(.*)<\/title>/i; 
     document.title = data.match(regexp)[1]; 
     // Change URL 
     history.pushState({ page: url }, url, url); 
     // Hiding loading div 
    } 
); 

答えて

0

私は私の問題を解決するための手がかりを見つけているよう

0
は(」時間を追加することで...コードの

$.ajaxSetup({ 
    cache: true, 
}); 

休みに

をキャッシュを有効に

) '(PHP関数)を#menu divに追加すると、jQueryが何らかの理由なくページを何度も読み込むことがあることに気付きました。これが、読み込み中にブラウザが遅くなる理由です...

誰かがこの問題を解決する方法について考えていますか?

ありがとうございます。

編集: 私は自分の問題を解決したと思います!私は私のコンテンツをロード

<div id="content"> 
    <div id="content"> 
    </div> 
</div> 

:私はそのことについて確信しているまで:)

問題のような複数のIDを使用した、私はこの質問をロックしないでください。だから今、コードは次のとおりです。

$.get(
    url, 
    function(data) 
    { 
     // Elements 
     //var resp = $("<div></div>").html(data); <-- EDIT 
      var resp = $(data); 
     $.each(
      elements, 
      function(i, v) 
      { 
       var content = resp.find("#"+v).html(); // HERE IS THE CHANGE, I ADDED .html() 
       $("#"+v).html(content); 
      } 
     ); 
     // Title 
     var regexp = /<title>(.*)<\/title>/i; 
     document.title = data.match(regexp)[1]; 
     // Change URL 
     history.pushState({ page: url }, url, url); 
     // Hiding loading div 
    } 
); 
+0

こんにちは3nigma、申し訳ありませんが、それはそれはキャッシュの問題ではない...何も変更しない、私はそれが「データ」変数の長さだと思うが、私はありませんよ確かに。 – Yoone

+0

.load()でテストしたところ、$ .get()と比較して速いです... – Yoone

+0

'ajaxSetup'で' global:false'でテストして差をつけることができますか? '$ .get 'と' load'はドキュメントによるとほぼ同じです... – Rafay

関連する問題