我知道有很多方法可以做到这一点。 但我在考虑两种方法 -
第一 - 当用户访问页面时,创建一个cookie,当用户访问页面时,检查cookie是否已设置。
二 -
我想存储IP。但是假设如果网页上有10000次唯一访问,那么我需要创建一个表并将其存储在其中。
现在,如果我需要检查100页,那么我需要在100个表中存储10000条记录。 这看起来很复杂。
所以基本上我想问:
那么在考虑了哪种方法更好的可能性后呢?
答案 0 :(得分:0)
这是使用a neat little tool I wrote对客户端数据库执行此操作的一种不寻常方式。
这个想法是您将记录保存在客户端而不是在服务器上创建数据库。然后,如果需要,可以使用ajax将其发回服务器。
// Load up jSQL library && data
jSQL.load(function(){
// Create a database if it doesn't exist
if(undefined === jSQL.tables.visits){
jSQL.createTable("visits", ['Page', 'ArrivedAt', 'StayedFor'], []);
}
// Get the loaded time
var ArrivedAt = Date.now();
// Insert a record before the page is unloaded
window.onbeforeunload = function(){
var Page = ""+window.location; // The page being loaded
var StayedFor = Date.now() - ArrivedAt + "ms"; // How long was the user on the page?
// Save the data to the database
jSQL.tables.visits.insertRow({
Page:Page,
ArrivedAt:ArrivedAt,
StayedFor:StayedFor
});
// Save the data to the database
jSQL.persist();
};
// Has this person visited before?
var returningVisitor = !!jSQL.tables.visits.data.length;
if(!returningVisitor){
document.getElementById('results').innerHTML = "No data yet, leave and come back";
}else{
// If the user has been here before, print a table to display records from the databsae
var visitData = jSQL.query("SELECT * FROM visits").execute().fetchAll();
document.getElementById('results').innerHTML = makeTable(visitData);
}
});
以下是一个工作示例:https://jsfiddle.net/bx2L5L93/
答案 1 :(得分:-1)
最好使用 Php Sessions ,因为它比Cookie更可靠,请点击此链接了解更多信息:
1)没有最大存储空间,但取决于服务器存储容量。
2)我认为没有任何限制,但取决于您使用的计划。
3)如果您的代码有问题,否!
1),2),3)是各自编号问题的答案