首页 > web前端 > js教程 > 如何在 Prototype.js 中同步检索 AJAX 响应文本?

如何在 Prototype.js 中同步检索 AJAX 响应文本?

Barbara Streisand
发布: 2024-12-26 04:32:13
原创
980 人浏览过

How Can I Retrieve AJAX Response Text Synchronously in Prototype.js?

异步 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板