1

我有一个静态页面(静态,我的意思是 html、css 和 javascript 都固定在页面上)。

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

实际服务页​​面的服务器是 Nginx,处理逻辑、会话等的服务器是 Tornado。所以想必我需要在tornado中做点什么,然后指示nginx下发静态页面。

这是可行的吗?如果是这样,那么最稳健的方法是什么?

4

1 回答 1

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
        }
    }
}())

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

于 2013-03-02T21:17:52.573 回答