を要求2のAjaxは、Webページの異なるビットを移入するためにデータを取得するために呼び出し、あなたが既に知っているだろうと、唯一の第二に発生します。私が作るしようとしている2アヤックス
だから私は、私はこれを行うだろうと考えた:
callAjax1('a'); callAjax2('b');
function callAjax1(data) {
ajax(data);
}
function callAjax2(data) {
ajax(data);
}
function ajax(data) {
// calls XMLHttpRequestObject etc
}
アイデアは、その代わりに、AJAXを呼び出す()を2回、今、私は独立して実行しますアヤックスの二つの独立したインスタンスを持っていると思いました。
それは私が私が到着した知っているように)私はアヤックスの一番上(の警告に入れている場合にのみ機能します..しかし。
私は、アラートが最初のリクエストの時間を指定してから2番目のリクエストが呼び出される前に完了すると考えています。したがって、私はそれらを適切に別のインスタンスに分離することはできませんでした。それは不可能ですか?
私には何が欠けていますか?
すべてのベスト J
UPDATE: 私はこのことを考えている、私はチャンスを立てていますか?
tParams = new Array (2); // we intend to call ajax twice
tParams[0] = new Array('ajaxGetDataController.php', 'PROJECT', 'id');
tParams[1] = new Array('ajaxGetFileController.php', 'FILE', 'projectId');
<select name='projectSelector' onchange=\"saveData(tParams, this.value);\">\n";
// gets called, twice
function saveData(pParams, pData) // pParams are: PageToRun, Table, Field
{
if (XMLHttpRequestObject)
{
tPage = pParams[0][0]+'?table='+pParams[0][1]+'&pField='+pParams[0][2]+'&pData='+pData;
XMLHttpRequestObject.open('GET', tPage);\n
XMLHttpRequestObject.onreadystatechange = callAjax(pParams, pData);
XMLHttpRequestObject.send(null);
}
}
function callAjax(pParams, pData)
{
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200)
{
var tReceived = XMLHttpRequestObject.responseXML;
options = tReceived.getElementsByTagName('option'); // fields and their values stored in simplest XML as options
popForm(options, pParams[0][1]); // goes off to use the DOM to populate the onscreen form
pParams.shift(); // cuts off pParams[0] and moves all elements up one
if (pParams.length>0)
{
saveData(pParams, pData);
}
}
}
ありがとう、私は今日それを見ます。一晩、私は呼び出しを再帰的に行うことができ、各呼び出しで、配列が空になるまで一番上の配列要素を削除する配列の配列を与えることができると考えました。あなたのものはより簡単に見えます:-) – JNAScarb
準備が整っていなければ、2番目の呼び出しを実行しませんか?それは準備が整っているのを待っていません。それは? – JNAScarb
私はこれにチャンスを与えますか? – JNAScarb