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

Differentiate between first download of the page and all subsequent downloads of the same page

本文关键字:一页 下载 下载和 分页      更新时间:2023-09-26

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

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

实际服务页面的服务器是Nginx,处理逻辑、会话等的服务器是Tornado。所以我可能需要在tornado中做一些事情,然后指示nginx交付静态页面。

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

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

或者使用本地存储:http://diveintohtml5.info/storage.html类似于cookie方法,但在第一个视图中,让javascript在本地存储中存储一个键=值对,并在每次页面加载时检查。下面的内容:

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

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