我正试图在website.com上的某些页面上向新访问者展示一些内容(介绍)。如果用户已经看过它,我希望再次“不打扰”用户。
让我们说用户进入website.com/cool-article然后我会在顶部向用户显示介绍 当用户点击website.com/useful-article-43时,该页面现在不应包含介绍。或者我应该继续介绍并在第二页上向下滚动用户? 如果用户是回访者,我也不想显示介绍。网站是用PHP构建的。
我的关注是 - 您选择哪种解决方案来确保SE机器人不会因为内容的不同而生气?根据我的理解,机器人从不带任何推荐信息。
选项:
1)查找$ _SERVER ['HTTP_REFERER']
($ httpReferer = isset($ _ SERVER ['HTTP_REFERER'])?$ _SERVER ['HTTP_REFERER']:null;)
如果它设置为mywebsite.com或NULL
做A或B
2)存储并检查用户访问页面时设置的cookie。
在session_start();
if!$ _ SESSION ['intro']
做A或B
$ _SESSION [ '介绍'] = 'introSeen';
3)通过JS / localStorage?
(不必要的内容加载?)
你会怎么做?
(A和B)
A)不要加载对页面的介绍
B)向用户滚动到文章,继续介绍。
答案 0 :(得分:1)
我解决此问题的方法是使用客户端持久存储,例如cookie或localStorage
。这样,始终提供相同的内容,并且用户的浏览器决定是否显示介绍。
如果用户未访问过,可以轻松实现在内容上方创建介绍的JavaScript解决方案:
(function firstTime() {
var introduction = '<div id="firstTime">Hello! This is your first time here!</div>';
if (localStorage.visited === undefined) {
document.body.innerHTML = introduction + document.body.innerHTML;
localStorage.visited = true;
}
})();
您可以修改它以适用于您的情况,或使用Cookie以实现更好的向后兼容性。