jQueryを使用したコードです。私の問題は、時には何の機能が動作しない、時には機能が動作しますが、彼らは順番に作業していない
<script type="text/javascript">
$(document).ready(function() {
getIdCategories();
getnameCategories();
});
</script>
を要求XHRを実行する二つの機能を呼び出す$(ドキュメント).ready(関数()である!!
牽引機能:
function getIdCategories()
{
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();
}
と:
function getnameCategories()
{
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;
}
}
を開始しません返さない限りこれは..あなたは、実行順序を制御できるようにする必要があり、別のAjax機能
を呼び出します。あなたは最初にどちらが終了するかの保証はありません。 –
jQueryとその '$ .ajax'メソッドが既にある場合、なぜネイティブ' XMLHttpRequest'オブジェクトを使用していますか?それは新しい家を購入し、夜は通りで寝るようなものです。 –
あなたのXHRにjQueryを使用しないのはなぜですか? – alex