2013-03-27 65 views
0

短篇小說 我需要能夠將消息推送到客戶端JavaScript數組/列表,但同時能夠將消息彈出。有點像隊列。你能同時讀寫javascript數組嗎?

長篇故事 我正在使用faye pub/sub創建一個實時javascript應用程序,並且當javascript框架加載它時,需要製作一個SOW(狀態世界)調用。只有這樣,更新/增量才能對數據有效。想象一下在服務器上進行的計算列表。我需要獲得這些計算的初始狀態。然後實時更新這些計算的進度。我想我可以做一個SOW調用,畫出我的用戶界面,同時緩衝足夠的更新,快速應用它們,做出任何需要的模型更改,然後實時顯示它們的更新。服務器使用Ruby和Mongo(內存中的文檔)。我們的目標是在SOW調用和UI繪製時不會錯過更新 - 這樣我就不必定期進行SOW調用,從而破壞了使用websockets/long poll /等的全部目的。

我可能會錯誤地接近整個事情,所以任何建議感激!

+5

由於JavaScript是單線程的,數組永遠不會被多個進程同時訪問。任何訪問順序發生。 – 2013-03-27 23:52:24

回答

2

只要您沒有明確創建任何JavaScript工作線程, 您對數據結構的訪問是單線程的,因此是安全的。

+2

即使與工作人員並行訪問也不會發生。工作人員通過回調與主線程進行通信,任何來回發送的數據都被序列化(即複製)。至少這是我最後一次看到它的情況:) – 2013-03-27 23:55:21

+0

@FelixKling:你說的很對 - 謝謝指出! – RichieHindle 2013-03-27 23:57:06