1

この関数を使用すると:

function start() {
MONDUX();
Biggie();
}  

関数 MONDUX が実行され、AJAX 呼び出しは適切なデータを返し、正しく表示されます。ただし、 Biggie() は aaw です

この結果:

function start() {
Biggie();
MONDUX();
}  

反対です。Biggie() は期待どおりに動作しますが、MONUX() は失敗します。

これは体の中で何の役にも立たない:

<script type="text/JavaScript">
window.onload= start();
</script>  

そして、この覆い焼きは役に立ちません:

<body onload="start()">  

それもそのように試しました

cargo~cult のプログラミングやアイデアの枯渇はここで嫌いです。提案?

これらのリソースはすべて関連していました // ヒットに近い // 葉巻はありません. 2つの関数 JSとBody(Window)オンロードイベント JavaScriptでボディオンロードにjavascriptをロードする:「関数onload() {}」は「onload = function() {}」とどう違うのですか? それは魅力的でしたが、私にとっては深海です .2つのJavaScriptファイルをオンロードするにはどうすればよいですか? うーん…いいけど…

?? :/~

<script type="text/javascript" >

 function MONDUX(){
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("WhatThexBobby").innerHTML=xmlhttp.responseText;
  }
 }
xmlhttp.open("POST","000 8 KISS 22solo PHP.php?figure1=5&figure2=33", true);
xmlhttp.send();

 alert(WhatThexBobby);

}
 </script>
 <script type="text/javascript" >

function Biggie(){

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("FreakinEh").innerHTML=xmlhttp.responseText;
 }
 }
 xmlhttp.open("POST","000 8 KISS solo PHP.php?figure1=5&figure2=10", true);
xmlhttp.send();

alert(FreakinEh);
 }


 </script>
4

2 に答える 2

1

リクエストをグローバル変数 xmlhttp に割り当ててから、最初のリクエストが返される前にその変数を別のリクエストに再割り当てしています。それがあなたの問題を引き起こしているかどうかはわかりませんが、問題を引き起こすことは間違いありませ。また、これは非常に悪い JavaScript プラクティスでもあります。

簡単な修正は、「var xmlhttp;」という行を追加することです。両方の関数の先頭に。

編集: これを知らなかった場合に備えて: xmlhttprequest は非同期です。「send」を呼び出すと、リクエストがサーバーに送信されている間、スクリプトとドキュメントの残りのステートメントが実行され続けます。サーバーが戻った後でのみ、さまざまなコールバック メソッド (onreadystatechange など) が呼び出されます。これは、アラートが表示されてからずっと後のことです。

于 2012-12-17T06:22:34.590 に答える
0

それらの 1 つが何らかのエラーをスローしていることを考慮して、それらを Try Catch に入れるのは良い考えではないでしょうか? 何かのようなもの、

function start() {
  try
  {
    MONDUX();
  }
  catch(err)
  {
   // handle error
  }
  try
  {
    Biggie();
  }
  catch(err)
  {
    //Handle error
  }
  finally
  {
   // cleanup
  }
}  

これにより、どちらかが失火した場合でも、両方の実行が保証されます。

于 2012-12-17T06:04:46.083 に答える