【发布时间】:2012-03-13 10:10:49
【问题描述】:
我用 jquery 编码。我的问题是:
<script type="text/javascript">
$(document).ready(function() {
function1();
function2();
});
</script>
有时没有功能起作用,有时功能起作用但它们没有按顺序工作! 功能1:
function getnameCategories1()
{
var request = new XMLHttpRequest();
if(i<idCategories.length)
{
request.open("GET","http://patisserie-orient.fr/prestashop/prestashop/api/categories/"+idCategories[i]+"?PHP_AUTH_USER="+PHP_AUTH_USER+"&ws_key="+ws_key,true);
request.onreadystatechange = function()
{
if(request.readyState==4)
{
//alert("Status2 is "+request.status);
if (request.status == 200 || request.status == 0)
{
response1 = request.responseXML.documentElement;
nameCategories[i] = response1.getElementsByTagName('language')[0].firstChild.data;
//alert(nameCategories[i]);
$('#im'+i).html(nameCategories[i]);
$('#a'+i).show();
i++;
}
}
}
request.send();
}
else
{
return;
}
}
函数2:
function getCategories()
{
var request = new XMLHttpRequest();
request.open("GET","http://patisserie-orient.fr/prestashop/prestashop/api/categories?PHP_AUTH_USER="+PHP_AUTH_USER+"&ws_key="+ws_key,true);
request.onreadystatechange = function()
{
if(request.readyState==4)
{
//alert("Status is: "+request.status);
if (request.status == 200 || request.status == 0)
{
response = request.responseXML.documentElement;
i=0;
while(response.getElementsByTagName('category')[i]!=undefined)
{
idCategories[i]=response.getElementsByTagName('category')[i].getAttribute('id') ;
//alert(idCategories[i]);
i=i+1;
}
}
}
}
request.send();
}
有时即使只是 $(document).ready 中的警告也不起作用
【问题讨论】:
-
奇怪...你能发布一个发生这种情况的代码示例吗?
-
代码没问题,所以问题应该在你内部
function1和function2。在旁注中,您应该接受一些问题的答案,这里的人就是这样。 -
function1 和 function2 中实际发生了什么?如果 function1 和 function2 正在执行异步请求(例如 XHR 请求),那么结果将不会以相同的顺序返回。
-
这两个函数在一个单独的js中,我先调用了js,然后调用了$(document).ready,但是还是不行。这两个函数是正确的,因为当我从按钮调用它们时,它们运行良好
-
是的@Geuis这两个函数正在执行XHR,那该怎么办?我只是将异步请求更改为同步请求?
标签: jquery