2012-01-05 5 views
1

申し訳ありませんがレンダリングされていることを確認することが、私はAJAXとjQueryAJAXとjQuery:私は不正確を書きます場合は、HTMLページが正しく

にかなり新しいです、私はこの

$(document).ready(function() { 
}) 

を持っていることは2つのAJAX GETが含まれています。

最初にテンプレートからHTMLを取得し、現在のページに読み込みます。 2番目はXMLファイルからコンテンツをロードし、現在のページにロードします。

ページが正しくレンダリングされ、最初の成功後に2番目のGETが発生するという保証が得られますか? それは、ページがいっぱいになることがあります。 ありがとうございます。

EDIT:

<script> 
     var page; 
     $(document).ready(function() { 
      $.ajax({ 
       type : "GET", 
       url : "template.html", 
       dataType : "html", 
       success : function(html) { 
        $('body').load('template.html #generalBox'); 
        $.ajax({ 
         type : "GET", 
         url : "content.xml", 
         dataType : "xml", 
         success : function(xml) { 
          page = $(xml).find('aTag'); 
          $('#content').html(page.text()); 
//other loadings 
         } 
        }); 

       } 
      }); 

     }); 

    </script> 

EDIT2:

がresloved:問題は残りから非同期に動作するように見えた

    $('body').load('template.html #generalBox'); 

にあったがそれは私が使用しています実際のコードですコード。

success : function(html) { 
        var ndoc = document.createElement('html'); 
        ndoc.innerHTML = html; 
        page = $('body', ndoc); 
        $('body').html(page.html()); 
//2nd get 

を使用してHTMLを読み込みました。

+0

は明らかに二GETは、最初にGETによってロードされているいくつかのタグを変更しようとすると、それ以外の文書には存在しません。 – Lorenzo

答えて

2

DOM修正が行われた後に第1のGETのコールバックから第2のGETを呼び出すので、第1のGETのデータが既にロードされているときに第2の要求が実行されます。 .ajax()を使用して

非常に一般的な例:

// 1st GET 
$.ajax({ 
    // ... 
    success: function(){ 
    // ... 

    // 2nd GET 
    $.ajax({ 
    // ... 
    }); 
    } 
}); 

EDIT:

​​はあなたが呼び出す必要があるので、非同期的にコンテンツをロードしているオプションのコールバックを使用して後​​仕上げGET第二 - を参照documentation

試してみてください。

$.ajax({ 
    // ... 
    success : function(html) { 
    $('body').load('template.html #generalBox', function() { 
     // 2nd GET should be executed in the callback of .load() 
     $.ajax({ 
     // ... 
     }); 
    }); 
    } 
}); 
+0

これは私がやったことですが、不思議なことに、ページをリロードするときに正しく表示されることがあります。コンテンツがなくても正しいHTMLだけが表示されることがあります。私はそれが同期の問題かもしれないと思いますか?ところで、私は電話しています。\t \t \t \t \t \t $( 'body')。load( 'template.html #generalBox');ネストされたものを呼び出す前に、最初のGETで。上のコードを見てください。 – Lorenzo

+0

@Lorenzo:私は自分の答えを更新しました。 – kubetz

0
$(document).ready(function() { 
$.ajax({ 
    url : "Your server url", 
    data : "data to posted", 
    type : "GET", 
    success :function(){ 
     //call your second ajax here... 
} 
}); 

}) 
関連する問題