2014-01-09 165 views
2

我看到了這個問題,18個月前在這裏問過,但沒有(正確的)答案:Window like facebook chat持久聊天窗口?像Facebook或OkCupid

Facebook和OkCupid有甚至當你點擊到另一個頁面在其網站上整理消息時保持開放的窗口。從字面上來看,即時通訊窗口(和Facebook上的朋友列表)並不像閃光燈或「閃爍」,就好像它們正在快速重新加載一樣。如果刷新網站(F5或類似網站),則郵件將消失,至少暫時消失。

我能想到的唯一的事情是整個網站從來沒有真正改變地址,而只是推送新的URL到你的瀏覽器,所以它看起來像URL改變,但你永遠不會真的離開相同的文件。

他們如何提供這種持久性聊天?

回答

1

我的猜測是,他們使用類似的東西來qjuery-pjax:由通過AJAX從您的服務器抓取HTML和更換容器的內容

pjax作品: https://github.com/defunkt/jquery-pjax

從自己的文件在您的網頁上使用ajax'd html。然後,它使用pushState更新瀏覽器的當前網址,無需重新加載頁面的佈局或任何資源(js,css),從而顯示快速,完整的頁面加載。但真的只是ajax和pushState。

這意味着點擊頁面上的鏈接將只加載頁面的一部分,並保持聊天窗口不變(不閃爍)。如果你點擊F5,瀏覽器正在啓動不會使用ajax/pushState的刷新。這會導致聊天窗口閃爍。