Javascript代码:
$.ajaxSetup({
async: true
});
$("a").live('click', function (event) {
$.get(logsomething-URL);
});
服务器上logsomething页面上的ASP.NET代码:
Thread.Sleep(10000);
当我点击链接时,我必须等待服务器的响应。在这种情况下,我必须等待10秒才能转发到我要求的页面。
有可能阻止这种情况吗?
答案 0 :(得分:4)
首先你不需要:
$.ajaxSetup({
async: true
});
因为默认情况下AJAX请求是异步的(这就是A
代表的异步)。
接下来,你可以从return false
处理程序click
来阻止默认操作(跟随href),并在AJAX success
处理程序中执行实际的重定向:
$('a').live('click', function (event) {
// store the location to redirect to later in the success callback
var href = this.href;
$.get('logsomething-URL', function(result) {
// Now after the AJAX call successfully returned
// perform the redirect
window.location = href;
});
return false;
});
答案 1 :(得分:0)
这样的事情应该这样做 - 基本上你不希望链接像链接那样:
$("a").live('click', function (event) {
var linkTarget = $(this).attr('href');
event.preventDefault();
$.get(logsomething-URL, function(){
window.location = linkTarget;
});
});
答案 2 :(得分:0)
我不会使用$ .get而是使用$ .ajax - 它可以让你指定更多。如果这不起作用,请尝试查看
http://api.jquery.com/jQuery.ajax/
$.ajax({
url: 'logsomething-URL',
success: function(data) {
alert('Success!');
},
global: false
});