区分首次下载页面和同一页面的所有后续下载

时间:2013-03-02 21:08:40

标签: javascript nginx http-headers tornado

我有一个静态页面(静态,我的意思是html,css和javascript在页面上修复)。

在服务器端,我可以告诉(基于服务器端会话信息)这是否是特定用户首次加载页面。现在,基于这个细节,我想发信号通知前端(例如通过在响应头中设置一些东西,可能?),这样页面上的javascript函数可以根据这是否是第一次用户执行某些操作已登陆此页。

实际为该页面提供服务的服务器是Nginx,处理逻辑,会话等的服务器是Tornado。所以我想在龙卷风中做一些事情,然后指示nginx提供静态页面。

这可行吗?如果是这样,最强有力的方法是什么?

1 个答案:

答案 0 :(得分:4)

您可以使用Cookie实现此目的:http://www.quirksmode.org/js/cookies.html 使用cookie,您将在第一个视图上发送带有响应标头的特定cookie。然后每次加载页面时,让您的javascript检查特定的cookie

或使用本地存储:http://diveintohtml5.info/storage.html 与cookie方法类似,但在第一个视图中,javascript在本地存储中存储key = value对,并在每次加载页面时检查它。这些方面的东西:

(function () {
    window.onload = function () {
        if (localStorage.getItem("SeenBefore")) {
            // Not first time viewed
        } else {
            localStorage.setItem("SeenBefore", true);
            // First view
        }
    }
}())

另一种选择是,在服务器端,您可以在第一次查看页面时设置会话变量,然后在每次用户发送页面请求时检查agianst。这也可以使用cookies来实现。