1

こんにちは、私は新しく、このサイトが大好きです

私はjavascriptを学んでおり、これまで多くのチュートリアルを行ってきましたが、ajaxを機能させることはできません.

これはW3schoolで見た

   var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

今、私は1行を

xmlhttp.open("GET","ajax_info.php?day="+document.getElementById("day").value,true);

すべての日ではなく、日に基づいて情報を読み取る必要があります。

ページが空で何も起こらないこともあれば、機能していてすべてがそこにあることもあります。

再現するには、F5 のように 3 回連続で押すだけで、少なくとも 1 回は失敗します。

私がまだ持っている最後の髪の毛を保存するのを手伝ってください!

4

2 に答える 2

0

@Karmen、完全なコードが表示されなかったため、失敗する本当の理由がわかりません。http://wp89.com/test/ajax/のテスト ページでは、 F5 キーを押して 10 回以上更新しましたが、失敗しませんでした。

接続が遅くなる可能性があるため、毎回ページが完全に読み込まれるまで待つ必要があることに注意してください。

于 2012-06-30T18:53:33.273 に答える
0

この問題は、スクリプトの読み込みが速すぎて「日」要素がまだ存在しないために発生します。

修正するには、イベント ハンドラーを追加して、ドキュメントが読み込まれるのを待つだけです。

これをそのように行うことができます:document.addEventListener("load", functionName, false);そして、ここに貼り付けたコードを保持する関数を作成します。

関数は適切なタイミングで呼び出され、機能するはずです。

それ以外に、jQuery や MooTools などのライブラリを使用することをお勧めします。これにより、コードを多くのブラウザーで簡単に実行できるようになります。コードでは、ユーザーがリクエストを作成する必要があるブラウザーを確認しています。

jquery を使用すると、次のような 1 行のコードですべてのコードを実行できます。

$(document).ready(function(){   // Wait for the document to load
    $.get("http://www.website.com?day="+$("#day").val());   // $.get will create an ajax, $("#day") is equivalent to getting an element by Id
});

詳細については、http://www.jquery.comをご覧ください。

于 2012-06-30T17:26:44.113 に答える