2010-09-23 78 views
0

所以,我試圖在發佈前四處看看,但我似乎無法找到答案。我的困境:使用ajax掃描xml鏈接,將鏈接應用到另一個ajax調用頁面並返回數據

我有一個XML文件,其中包含各種網頁的鏈接(所有類似的差異產品)。

通過使用jQuery和AJAX,我可以從XML文件中提取鏈接。

然後,我希望能夠將這些鏈接依次傳遞給另一個AJAX調用,該調用將使用代理服務器連接到另一個站點併爲其提供數據。在這種情況下,它是一個特定的類。然後,我需要能夠收集該類中的數據,並將其應用到我的站點中的一個跨度中。

HTML標記將被等待刮掉數據

<div class="panel"> 
    <span class="price"></span> 
</div> 
<div class="panel"> 
    <span class="price"></span> 
</div> 
<div class="panel"> 
    <span class="price"></span> 
</div> 

JS執行這一切:

//Pull Content Necessary Links From XML File 
$.ajax({ 
    type: "GET", 
    url: "/Test/addTocart/realExample/Media/xml/items.xml", 
    dataType: "xml", 
    success: function(xml) { 
     $(xml).find('target').each(function() { 

      //Scan Through XML to Find Each Link 
      link = $(this).find('link').text(); 

      function fetchPage(url) { 
       $.ajax({ 
        type: "GET", 
        url: "http://test/crossdomainproxy.aspx?u=" + link, 
        error: function(request, status) { 
         alert('Error fetching ' + url); 
        }, 
        success: function(data) { 
         parse(data); 
        } 
       }); 
      } 

      function parse(data) { 
       alert($(data).find(".threeThin .price-side").text()); 
      } 

      fetchPage(1);   

     }); 
    } 
}); 

所以基本上,如果其他網頁標記看起來是這樣的:

網站1

<span class="price-side">$23.33</span> 

網站2

<span class="price-side">$22.33</span> 

網站3

<span class="price-side">$245.33</span> 

我的標記應該是這樣的:

<div class="panel"> 
    <span class="price">$23.33</span> 
</div> 
<div class="panel"> 
    <span class="price">$22.33</span> 
</div> 
<div class="panel"> 
    <span class="price">$245.33</span> 
</div> 

所以我想我的問題是,如何指定它們加載我的標記是爲了?我是否通過xml中的鏈接進行循環,然後將它們放入ajax - > proxy中,然後遍歷結果以便吐出到每個跨度?

任何幫助將不勝感激!謝謝!

回答

1

如果我是你,我不會把一個Ajax請求放入循環中。如果要對代理執行多個請求,則應將該邏輯放置在服務器上,並將link s的數組傳遞給該服務器腳本,其中只有一個來自瀏覽器的http請求。一旦你有數據返回,你甚至可以使用ASP返回一個對象的數組與每個項目的ID和價格。然後,在JavaScript中,您可以循環訪問這些數據,並使用Javascript的append()或html()(或您想要使用的任何DOM操作)將其封裝在任何HTML中。如果我錯過了一個重要的問題,請告訴我。

相關問題