2011-10-18 4 views
5

Stackoverflowでタグ上にカーソルを置くと、ツールチップが次のように表示されます。これは、おそらくjquery.appendを介して実現されます。これは、HTMLドキュメントの最後にHTMLコードを挿入するためです。 ホバーイベントごとに、AJAXリクエストが行われます。おそらくjquery.load(...)を経由します。Stackoverflow/Stackexchangeのようなタグホバーのツールチップを取得するにはどうすればよいですか?

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); 
} 

enter image description here

答えて

2

をユーザーがホバーをトリガした場合にのみデータを更新することによって、イベントでは、x秒ごとにデータベースを絶えずクエリする必要はありません。この方法は、特に毎秒サーバーに電話をかけたくなるような最新の情報が必要な場合には、リソースの無駄です。

しかし、これを行う良い方法(あなたの質問で話す方法よりも優れています)は、Cometと呼ばれる方法です。 Cometは、クライアントがサーバーに要求を出した後、サーバーが応答するのを待つ(つまり、サーバー上のデータが更新される)ことを意味します。これは、クライアントにプッシュされる更新データがある場合にのみサーバーが呼び出されることを意味します。これは、Facebookがうまくいく(私が信じる)方法です。

関連する問題