我试图建立一个"查看最近的搜索"功能到一个网站我有。基本上,我想在网站上每5秒显示一个新的最近搜索。
最好的方法是什么?我正在考虑让每个页面与套接字连接到我的服务器。Io,然后每5秒向所有套接字广播一条关于新搜索的消息。在客户端,在从套接字上的服务器接收消息后,我将使用一些客户端javascript来更新网页的最近搜索部分。
这是最好的方法吗?如果是,我应该如何实现它?
我使用node.js/express。
像这样…
var io = require('socket.io').listen(3001);
// Send to Everyone
setTimeout(function() {
io.sockets.send('message');
}, 5000 );
// Send to Everyone on channel test123
setTimeout(function() {
io.sockets.emit('test123', {test: "success!"} );
}, 5000 );
(未经测试,但应该可以工作。需要套接字。IO 0.7。X或更新版本。让我知道这是怎么回事,=]
。
同样,对于显示最近的搜索非常重要:这些链接通常不会显示给用户,因为它们通常太随机而没有用处。也许是热门搜索,但这些信息的变化并不频繁,不足以保证如此频繁的更新。此外,大多数人使用这种技术让他们的网站列出的页面,他们没有真正的内容。需要注意的一件重要的事情是,如果你允许搜索引擎访问这些页面(不把你的搜索结果页面列入robots.txt
的黑名单),你就有很高的风险从谷歌那里得到一个低质量的标志。
我最真诚的建议:虽然这可能是一个很酷的功能,特别是对于一个管理控制台,它对访问者来说是完全无用的,并且可以证明是一个损害你的网站的SEO价值,通过添加到谷歌的索引低质量的内容和负载的链接无处可用。我甚至不会显示它
如果你选择一个固定的时间,比如5秒,那么我认为你不需要设置socket io。只需执行setInterval并每5秒向服务器询问最近的新搜索。这也意味着对最近搜索的调用不会同步,以确保服务器不必立即向每个人发送更新(就像使用socket一样)。IO和广播最近的新搜索消息)