0

なので、投稿する前に見回してみましたが、答えが見つからないようです。私のジレンマ:

さまざまなページ(すべて類似した差分製品)へのURLリンクを格納する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->プロキシにスローし、結果をループして各スパンに吐き出しますか?

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

1

もし私があなたなら、ループ内に ajax リクエストを入れません。プロキシに対して複数のリクエストを実行する場合は、そのロジックをサーバーに配置し、ブラウザからの 1 つの http リクエストだけlinkでの配列をそのサーバー スクリプトに渡す必要があります。データが戻ってきたら、ASP を使用して、各アイテムの ID と価格を含むオブジェクトの配列を返すこともできます。次に、JavaScript で、そのデータをループして、Javascript の append() または html() (または使用したい DOM 操作) を使用して、好きな html にラップできます。質問の重要な部分が欠けている場合はお知らせください。

于 2010-09-23T23:03:27.640 に答える