0

XMLファイル(またはオブジェクト)が正常に返されたら、コードを実行する必要があります。以前ではなく、繰り返しではありません。ファイルが返された、 1回だけ。

私のコードは、私が達成しようとしていることをすでに実行していますか?IEで数回失敗したようですが、信頼できることを確認する必要があります。

$(document).ready(function(){
    (function GetFile(){
        $.ajax({
          type: "GET",
          url: "Produce.xml",
          dataType: "xml",
          cache: false,
          success: function(result) {
                alert("XML File is loaded!");
                alert(result);
                },      
            async: true
          });
    })();
});

onerror確認および検証できるコードと値があることを知っていreadystatechangeます...サーバーでXMLファイルをポーリングするときにこれらの値を確認する必要がありますか?

4

2 に答える 2

1

後にコンマを削除async: true

また、GetFile関数は、再度呼び出す予定がない場合はすぐに実行されます。匿名で使用するか、その関数をすべて一緒に削除することをお勧めします。

$(document).ready(function(){
        $.ajax({
          type: "GET",
          url: "Produce.xml",
          dataType: "xml",
          cache: false,
          success: function(result) {
                alert("XML File is loaded!");
                alert(result);
                },      
            async: true
          });
});
于 2012-08-16T13:59:10.663 に答える
0

これは元の質問者によって編集として追加されました。編集ではなく回答である必要があるため、コミュニティwikiの回答に変換しました。

@AndrewDouglasの提案のおかげで修正されました。新しいコードは次のとおりです(これはうまく機能します)。

$(document).ready(function(){
(function GetFile(){
    $.ajax({
      type: "GET",
      url: "Produce.xml",
      dataType: "xml",
      cache: false,
      success: function(result) {
            alert("XML File is loaded!");
            alert(result);
        },
      error:function (xhr, ajaxOptions, thrownError){
            z++;
            alert(xhr.status);
            alert(thrownError);
            setTimeout(GetFile, 5000);
            console.log("Error " +z+": " + thrownError);
        },              
            async: true
        });
    })();
});

最後のコメントですが、に変更できるはずです。そうすると、XMLファイルが継続的にポーリングされますsetTimeout(GetFile, 5000)setInterval(GetFile, 5000)ただし、このセクションでそれを行うとsuccess、もう少し意味があります。

于 2015-06-23T15:34:25.103 に答える