- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在数据库中存储事件。事件可以是页面点击和保存/更新等。从 Controller 操作内部,这一切发生得很漂亮。
我有 3 个链接,当单击这些链接时,我想在数据库中存储一个事件。我不想让用户执行通用操作来存储事件,然后执行response.redirect,而是想在幕后通过 jquery/ajax 来执行此操作。现在,当用户单击链接时,应该发生两件事
我只希望用户单击链接,然后用户就可以到达预期的页面。 当代码等待远程操作的响应时,后台处理不应让用户在页面上再等待一两秒。我是否需要等待 ajax 请求完成,或者只是在我的 jquery 操作中添加“return true”?由于用户将被带到下一页,我的ajax请求会变坏或停止吗?在 firebug 中,我看到当用户在 ajax 请求完成之前单击页面上的某些链接时,ajax 进程会中止。我怎样才能最好地做这样的事情?
示例代码:
$(document).ready(function() {
$("a[custom-event]").on('click', function () {
var label = $(this).attr("custom-event");
var value = $(this).attr("custom-event-value");
DoSomeAjaxProcessing('event', 'click', label, value); //don't want this to go bad if redirection happens immediately
return true; //return true so that the browser can send the user to the href location
});
});
更新1:
这样的东西会为我飞吗?我也要去测试和更新。
$(document).ready(function() {
$("a[custom-event]").on('click', function () {
var label = $(this).attr("custom-event");
var value = $(this).attr("custom-event-value");
(new Image).src = someurl+"?label="+label+"&value="+value+"&type=event&action=click";
return true; //return true so that the browser can send the user to the href location
});
});
最佳答案
如果您尝试使用服务器记录事件,则需要支付一些费用。您无法异步调用服务器来记录事件并同时提供该链接的目标。
正如您所提议的,您提议的两条路径都不能令人满意:
在 Stack 中,我们还使用“事件”来跟踪用户操作,但我们主要可以在目的地的 Controller 级别上进行操作。
例如,如果您有一个结帐流程,将用户从 /home
路由带到 /login
路由,我们将在开始时跟踪该事件为 /login
View 提供服务的 Controller 。
[Route("/login")]
public virtual ActionResult Login()
{
// Tracking code here, probably passing in the referrer
return View();
}
关于单击链接时,javascript 即发即忘 - 异步 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26983113/
我是一名优秀的程序员,十分优秀!