【发布时间】:2014-11-29 20:55:54
【问题描述】:
我有带有文本区域的表单。在文本区域中,用户可以每行输入关键字。
我想这样做。 单击按钮后向服务器发送 ajax 请求并获取第一个关键字的结果。然后显示/附加它。完成后发送第二个关键字的第二个 ajax 请求。每个关键字都像这样。
我想这样做是因为服务器对每个关键字的响应有点慢。如果一次显示所有关键字输出,那么会花费太多时间来查看结果。所以在上面的方法中我认为用户不需要等待看到所有的结果。用户可以看到一个一个关键字的输出。
我的代码是这样的,我在 wordpress 插件中使用它。获取结果为 json。
jQuery(document).ready(function () {
jQuery('#get_seo_rank').click(function() {
var keywordLines = jQuery('#keywords').val().split(/\n/);
var current = 0;
var total = keywordLines.length;
for (var i=0; i < total; i++) {
jQuery.ajax({
type : "post",
dataType : "json",
url : process.php,
data : {
action: "get_rank",
keywords: keywordLines[i]
},
beforeSend:function(){
},
success:function(response){
if(response.type == "success") {
jQuery("#resultWrap").append(response.result);
}
else if(response.type == "error") {
jQuery("#resultWrap").html(response.result);
} else {
jQuery("#resultWrap").html(response.result);
}
},
error:function(response){
}
});
} // end loop
}); // end click event
});
如果有人能对此提供帮助,将不胜感激。
非常感谢!
【问题讨论】:
-
尝试使用嵌套的 ajax 调用,这将很有帮助:- link。您同时调用 3 个 ajax 调用,您必须等待一个 ajax 成功,然后再调用另一个 ajax 调用。
-
感谢您的回复。如果关键字的数量是动态的,那么我们如何在没有硬编码功能的情况下执行每个关键字的功能。再次感谢!
标签: javascript php jquery ajax