JavaScript代码:
$.ajaxSetup({
async: true
});
$("a").live('click', function (event) {
$.get(logsomething-URL);
});服务器上日志页面上的ASP.NET代码:
Thread.Sleep(10000);当我点击一个链接时,我必须等待服务器的响应。在这种情况下,我必须等待10秒才能被转发到我请求的页面。
有可能防止这种情况发生吗?
发布于 2010-12-07 22:27:35
首先,你不需要:
$.ajaxSetup({
async: true
});因为AJAX请求在缺省情况下是异步的(这就是A的含义:异步)。
接下来,您可以从click处理程序执行return false以阻止默认操作(遵循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;
});发布于 2010-12-07 22:31:57
像这样的东西应该能做到这一点--基本上你不希望这个链接表现得像一个链接:
$("a").live('click', function (event) {
var linkTarget = $(this).attr('href');
event.preventDefault();
$.get(logsomething-URL, function(){
window.location = linkTarget;
});
});发布于 2010-12-10 19:39:46
我不会使用$.get,而是使用$.ajax,它可以让您指定更多。如果这不起作用,可以试着看看http://api.jquery.com/jQuery.ajax/
$.ajax({
url: 'logsomething-URL',
success: function(data) {
alert('Success!');
},
global: false
});https://stackoverflow.com/questions/4377641
复制相似问题