首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery中的异步日志记录

jQuery中的异步日志记录
EN

Stack Overflow用户
提问于 2010-12-07 22:23:55
回答 3查看 336关注 0票数 1

JavaScript代码:

代码语言:javascript
复制
$.ajaxSetup({
  async: true
});

$("a").live('click', function (event) {
 $.get(logsomething-URL);
});

服务器上日志页面上的ASP.NET代码:

代码语言:javascript
复制
Thread.Sleep(10000);

当我点击一个链接时,我必须等待服务器的响应。在这种情况下,我必须等待10秒才能被转发到我请求的页面。

有可能防止这种情况发生吗?

EN

回答 3

Stack Overflow用户

发布于 2010-12-07 22:27:35

首先,你不需要:

代码语言:javascript
复制
$.ajaxSetup({
    async: true
});

因为AJAX请求在缺省情况下是异步的(这就是A的含义:异步)。

接下来,您可以从click处理程序执行return false以阻止默认操作(遵循href),并在AJAX success处理程序中执行实际的重定向:

代码语言:javascript
复制
$('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;
});
票数 4
EN

Stack Overflow用户

发布于 2010-12-07 22:31:57

像这样的东西应该能做到这一点--基本上你不希望这个链接表现得像一个链接:

代码语言:javascript
复制
$("a").live('click', function (event) {
    var linkTarget = $(this).attr('href');
    event.preventDefault();
    $.get(logsomething-URL, function(){
         window.location = linkTarget;
    });
});
票数 0
EN

Stack Overflow用户

发布于 2010-12-10 19:39:46

我不会使用$.get,而是使用$.ajax,它可以让您指定更多。如果这不起作用,可以试着看看http://api.jquery.com/jQuery.ajax/

代码语言:javascript
复制
$.ajax({
  url: 'logsomething-URL',
  success: function(data) {    
    alert('Success!');
  },
  global: false
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4377641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档