2012-08-06 18 views
0

好吧,我知道這聽起來有點令人困惑,所以更好地說明這一點:如何使用AJAX在網站上顯示用戶鼠標指針,以便查看網站的每個人都可以看到它?

想象一下,我們現在都在使用stackoverflow(我們是)。現在有多少人也在問一個問題,並在我所在的同一個文本框中輸入?我知道可以一次顯示頁面上有多少用戶,但是可以使用AJAX來顯示用戶鼠標指針在頁面移動時的配合嗎?也許甚至他們的鼠標指針/有用戶名通過它浮動到他們可能會點擊的地方(看看我要去哪裏)。

這可能嗎?

+0

如果您正在尋找某種Google文檔應用模型,那麼執行這項工作所需的不僅僅是簡單的Ajax(主要是出於性能原因)。看看http://en.wikipedia.org/wiki/Comet_(programming) – darma 2012-08-06 10:52:54

回答

0

我不會推薦做這樣的事情。

你需要做的是將鼠標的每一個移動都發送到服務器,服務器將用用戶的用戶名(以及你需要的任何其他細節)將它存儲在內存中。你需要開到每個用戶的瀏覽器的持久連接(見Comet),以便

  1. 你不必應付建立鼠標位置
  2. 你的每次更新新連接的開銷可以將其他用戶的鼠標位置細節推送到所有用戶的瀏覽器。

的原因,這是一個壞主意,都是

  1. 鼠標指針的更新將是極其頻繁觸發,並會產生流量的不少。
  2. 然後,您必須將每個鼠標位置更新發送給當前登錄的所有用戶
  3. 此常數活動也會減慢用戶的瀏覽器速度。

谷歌的人們在Google Wave上實施這個操作時遇到了麻煩,而這主要是文本更新。除非你有一個非常重要的用例,這種行爲很重要,否則我會建議一個網絡密集程度較低的用戶界面。

+0

是否有可能使用新技術,如html5,畫布和網絡套接字來產生這樣的效果? – Oneezy 2013-10-09 20:57:38

+0

無論您使用Web套接字還是Comet,網絡通信量都沒有差異。這仍然非常高。 Canvas只是一個繪圖框架,所以選擇它與其他東西不會影響你在這裏實現的目標。 – 2013-10-11 06:40:03

1

找到這篇文章,因爲我想做同樣的事情。答案是肯定的,你可以發送相對於div的位置並且每隔一段時間更新它,然後在另一側使用轉換更新位置。這並不準確,但目標是讓用戶感覺到更多人同時在網頁上。您可以使用這些div來顯示「用戶正在鍵入」等。對於我的情況,我希望用戶知道是否會有答覆,或者他們應該離開並稍後再回來。

+0

不錯!一旦你得到了它的通用版本,你肯定應該在這裏發佈它的小提琴:)當我最初問這個我有一個想法,但時間已經過去了,我忘記了那個想法是哈哈..但在行動中看到這樣的事情絕對會很酷 – Oneezy 2014-05-09 01:13:04

相關問題