1

使用此功能:

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

函数MONDUX 执行,AJAX 调用返回良好数据并正确显示。但是,Biggie() 是awal

结果:

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

是相反的。Biggie() 按预期工作,MONUX() 失败。

这对身体没有任何好处:

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

而且,这种闪避没有帮助:

<body onload="start()">  

这也被尝试过

讨厌货物~邪教编程和这里的想法用完。建议?

这些资源都是相关的 // 近乎命中 // 没有雪茄。 使用 2 个函数 JS 和 Body(Window) Onload 事件在 body onload 中加载 javascript :“function onload() {}”与“onload = function() {}”有何不同? 那个很吸引人,但对我来说很深…… 如何加载两个 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 是异步的。您调用“发送”,脚本和文档中的剩余语句将在请求发送到服务器时继续运行。只有在服务器返回后,才会调用各种回调方法(onreadystatechange 等),而这是在您的警报显示很久之后。

于 2012-12-17T06:22:34.590 回答
0

考虑到其中一个正在抛出一些错误,将它们放入 Try Catch 不是一个好主意吗?就像是,

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

这将确保两个运行,即使其中一个误触发。

于 2012-12-17T06:04:46.083 回答