以下代码没有任何问题,但是我想知道在第二次Ajax调用中是否有更好的方法可以不使用async: false
。在请求完成后阅读了很多关于浏览器锁定的内容我很担心这个,虽然我没有在我测试过的任何浏览器中看到过这个。
编辑:这段代码的作用是首先对MailingList_unsubscribe.asp进行ajax调用,以获取第二个Ajax请求中的URL使用的电子邮件地址,该请求使用电子邮件地址(查询字符串)发送信息/v/get_id.asp页面的URL。 此页面从数据库请求XML数据,并且根据响应将给出两个可能的消息之一。
jQuery(function(){
jQuery.ajax({
url: '/MailingList_unsubscribe.asp',
type: 'GET',
cache: false,
success: function(data){
if (jQuery(data).find('#content_area').find('input[name="emailaddress"]').length && jQuery(data).find('#content_area').find('input[name="emailaddress"]').val() != '' ){
jQuery.ajax({
url: '/v/get_id.asp?email=' +jQuery(data).find('input[name="emailaddress"]').val(),
type: 'GET',
cache: false,
async: false,
success: function(data){
var xml;
if (typeof data == "string" && jQuery.browser.msie ) {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
jQuery(xml).find('Customers').each(function(){
if (jQuery(this).find('Customer_IsAnonymous').text() == 'N' || jQuery(this).find('Customer_IsAnonymous').length == 0 ){
if(jQuery(this).find('Custom_Field_SubExpiry').text() != ''){
jQuery('#CBA').closest('tr').after('<tr class="colors_backgroundneutral"><td width="242"><span id="subscription">My subscription expires after '+jQuery(this).find('Custom_Field_SubExpiry').text()+'</span></td><td width="235"></td></tr>');
} else{
jQuery('#CBA').closest('tr').after('<tr class="colors_backgroundneutral"><td width="242"><span id="subscription">I do not have a current subscription</span></td><td width="235"></td></tr>');
}
}
});
}
});
}
}
});
});