哪种方式最适合为每个访问者创建一个公共变量
Which way is best for making a public variable for every visitor?
我试图获得每个人对按钮的总点击次数。我正在考虑使用 ajax 的 POST 函数,但它会在服务器上发出很多 PHP 请求。我想做这样的事情:
<script>
document.getElementById('buttonToClick').onclick = function() {
var totalClicks = ???; // get total clicks number from the server somehow and
// assign it to var totalClicks;
document.getElementById("totalClicks").innerHTML = totalClicks;
??? = ??? + 1; // add 1 to total clicks number and save it to server.
};
</script>
<input id="buttonToClick" type="submit" name="button" value="enter"/>
<a>The button is clicked <a id="totalClicks"></a> times!</a>
可以用Javascript做到这一点吗?
您必须使用 AJAX 将数据POST
到服务器,因为您使用的是 jQuery,因此您可以使用 $.ajax
函数。
举个例子:
$(document).on("click", "#buttonToClick", function() {
uploadClickCount();
});
function uploadClickCount()
{
var userId = $("#UserId").val(); // Get the user id first
var totalClicks = $("#totalClicks").val();
$.ajax({
url: 'YourWebsite/ClickCounter',
type: "POST",
data: { user: userId, clickCount: totalClicks },
success: function() { }
error: function() { alert('Unable to connect to the server'); }
});
}
保存对服务器的调用的另一种方法是在用户离开页面或使用window.unload
方法关闭页面时尝试发送总点击次数,但这可能不可靠。
您还可以考虑将点击计数存储在本地存储中HTML 5
然后在用户返回时/一旦DOM
准备就绪时上传它,即 $(document).ready(function() { });
是存储用户上次尝试联系服务器的时间,然后可以使用它在 10 秒延迟后调用 AJAX 调用,这将防止服务器端的大量请求。
相关文章:
- 导航到特定事件的另一个变量页面
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- 使用mongodb更新中的一个变量
- 将节点数据分配给另一个变量jstree
- Javascript:在激发函数后返回一个变量以供使用
- 替换另一个变量对象中的变量值
- 什么'它的意思是当一个变量位于括号外时
- 可以't将sessionStorage设置为Javascript中的一个变量
- 在Flickr API的标签参数中传递一个变量
- 从Jquery函数中获取一个变量
- 为两个ID设置一个变量的正确语法
- 如何将变量值附加到另一个变量
- 通过加载函数发送一个变量
- 如何将一个变量从一个控制器传递到合金中的另一个控制器
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- Javascript未在其中一个变量上输出0
- 保留“;这个“;在一个变量中;这个“;使用此变量
- 是否可以在另一个变量中使用未声明的变量
- JS/ANGULAR使用一个变量's值作为另一个对象的键
- 如何每秒从一个变量中提取一定次数的javascript/html