如何获得Stackoverflow / Stackexchange - 如标记悬停工具提示?

时间:2011-10-18 18:46:57

标签: jquery css user-interface tooltip

将鼠标悬停在Stackoverflow上的标记上时,会出现一个工具提示,如下所示。这可能是通过jquery.append实现的,因为它在HTML文档的最末端插入了HTML代码。 在每次悬停事件后,经过一段时间的延迟后,会发出一个AJAX请求,可能是通过jquery.load(...)

发送到webapps.stackexchange.com的url查询例如是_ = 1318962590136,这是一个动态ID。

  • 1)这如何在客户端和服务器端工作,有哪些好处?

工具包的有效负载是HTML,如下所示:

<div><div class="tm-heading">...</div></div><span>.......</span>

离开标记后,将删除动态加载的HTML。 css样式已经存在于stackoverflow站点的加载的css表中。

  • 2)最初声明的事件似乎没有附加到构成标记的样式化<a>链接元素。似乎只宣布了mousedown事件(通过Chrome检查)。

JavaScript-DeObfuscator提供了一些线索:事件监听器也是动态添加和删除的......

function (a, b, c) {
    a.removeEventListener && a.removeEventListener(b, c, !1);
}

enter image description here

1 个答案:

答案 0 :(得分:2)

仅在用户触发悬停事件时更新数据,这意味着您不必每隔x秒钟不断查询数据库。这种方法完全浪费资源,特别是当您需要极其最新的信息时,可能很容易每秒呼叫服务器。

但是更好的方法(比你在问题中谈到的方法更好)是一种名为Comet的方法。 Comet简单表示客户端向服务器发出请求,然后等待服务器响应(即,当服务器上的数据被更新时)。这意味着只有在有更新数据要推送到客户端时才会调用服务器。这就是(我相信)Facebook的工作原理。

相关问题