异步 JavaScript 和 XML (AJAX) 响应文本检索
在基于原型的 AJAX 开发环境中,检索响应文本会导致挑战。考虑以下代码:
somefunction: function(){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; } } }); return result; }
在此代码片段中,“onComplete”函数是在“someFunction”完成很久之后异步执行的。这会导致“结果”变量为空。
为了克服这个问题,在提供的答案中提出了一个解决方案:向“someFunction”引入一个回调函数作为参数。一旦 AJAX 操作完成,就会调用此回调。
修改后的代码如下:
somefunction: function(callback){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; callback(result); } } }); } somefunction(function(result){ alert(result); });
在本例中,“someFunction”将回调作为参数,并使用响应文本。在示例中,回调函数显示带有检索到的文本的警报。这种机制确保响应文本在需要时可供后续函数使用。
以上是如何在 Prototype.js 中同步检索 AJAX 响应文本?的详细内容。更多信息请关注PHP中文网其他相关文章!