我有一种情况,我需要增加文章的阅读次数。一旦有人打开一篇文章,它应该通过将阅读次数增加一来反映在数据库中。简单的。
向服务器发送 POST 请求会使读取次数增加一。有问题的文章是通过 URL 参数提供的。
通过在浏览器中键入 URL 手动执行此操作可以按预期工作。所以服务器端没有错。
我的问题从它的 javascript 方面开始,或者更确切地说是 jquery。我将事件与文章链接挂钩。因此,每次用户点击文章链接时,它都会增加阅读次数,如下所示:
$('#list-articles .article-link').click(function(e){
var oid = $(this).parent().parent().attr('data-oid').toString(); //Get the article id
$.post( "/articles/viewed/" + oid );
});
现在这不起作用!数量不增加。
我不会阻止默认操作,因为我需要链接来实际打开和显示文章。
现在,如果我在这样的帖子之后立即发出警报:
$('#list-articles .article-link').click(function(e){
var oid = $(this).parent().parent().attr('data-oid').toString(); //Get the article id
$.post( "/articles/viewed/" + oid );
alert(oid);
});
此变体有效。在我关闭警报窗口后,数字会增加。为什么会这样??在没有警报事件的情况下,如何解决此问题以使其实际工作?
更新
感谢您帮助解决此问题。所有答案都很棒,并且以一种或另一种方式提供帮助。到目前为止唯一有效的变体是在 ajax 调用上禁用异步。如果有人能详细说明为什么在 ajax 中关闭异步模式来修复它,那就太好了。那么原来的post请求从来没有被执行过?如果我只是检查得太早并且在页面加载时看不到数量增加,那么在下一页重新加载时应该仍然可见,对吗?因为它根本没有在数据库上更新,我认为该帖子根本没有运行。为什么会这样?我想了解这个问题,所以我不会再陷入这个问题。谢谢。