Lor*_*uer 5 css jquery user-interface tooltip
将鼠标悬停在Stackoverflow上的标记上时,将显示工具提示,如下所示.这可能是通过jquery.append实现的,因为它在HTML文档的最末端插入了HTML代码.在每次悬停事件后,经过一段时间延迟后,会发出一个AJAX请求,可能是通过jquery.load(...)
发送到webapps.stackexchange.com的url查询例如是_ = 1318962590136,这是一个动态Id.
toolip的有效负载是HTML,如下所示:
<div><div class="tm-heading">...</div></div><span>.......</span>
Run Code Online (Sandbox Code Playgroud)
离开标记后,将删除动态加载的HTML.css样式已经存在于stackoverflow站点的已加载的css表中.
<a>构成标记的样式化链接元素.似乎只声明了mousedown事件(通过Chrome检查).JavaScript-DeObfuscator提供了一些线索:动态添加和删除事件侦听器......
function (a, b, c) {
a.removeEventListener && a.removeEventListener(b, c, !1);
}
Run Code Online (Sandbox Code Playgroud)
通过仅在用户触发悬停事件时更新数据,这意味着您不必每隔 x 秒不断查询数据库。这种方法完全浪费资源,尤其是当您需要极其最新的信息时,每秒都可能会调用服务器。
但更好的方法(甚至比您在问题中讨论的方法更好)是一种称为 Comet 的方法。Comet简单来说就是客户端向服务器发出请求,然后等待服务器响应(即服务器上的数据更新时)。这意味着只有当有更新的数据要推送到客户端时才会调用服务器。例如,(我相信)Facebook 就是这样运作的。
| 归档时间: |
|
| 查看次数: |
291 次 |
| 最近记录: |