jquery – 我如何获得Stackoverflow / Stackexchange – 比如tag-hover工具提示?

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

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

> 1)这如何在客户端和服务器端工作,有什么好处?

toolip的有效负载是HTML,如下所示:

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

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

> 2)最初声明的事件似乎没有附加到样式的< a> link元素,组成标记.似乎只声明了mousedown事件(通过Chrome检查).

JavaScript-DeObfuscator提供了一些线索:动态添加删除事件侦听器……

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

解决方法

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

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

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...