我有一個Java對象,並在其中存在由「知名文本」字符串定義的空間形狀。在我的GWT UI中對該對象進行鼠標懸停時,我的代碼通過JSNI將此字符串傳遞給Javascript,從而進行一堆解析並創建適當的Bing Maps API形狀。在Java中存儲Javascript對象
這是一個簡單的例子,它是一個地圖應用程序,其中每個狀態作爲包含狀態名稱和定義其周界的字符串的對象存在。在我的用戶界面中對狀態名稱進行鼠標懸停時,將對外圍字符串進行分析,並在地圖上繪製一個代表形狀。
所以現在,我的代碼在每次用戶使用鼠標時都會傳遞,解析和創建對象。我正在尋找一種解析字符串的方法,並且只創建一次對象,希望能夠在原始Java對象本身中存儲已完整創建的Javascript對象(Bing地圖形狀)。我認爲,這應該可以加快速度 - 當用戶每次將鼠標移動到不同的項目時,必須解析並創建幾個非常詳細的地圖對象,UI纔開始顯得遲鈍。
是否有可能將這種性質的Javascript對象存儲在我的Java對象中,然後在我需要時將它們帶回到Javascript?
在我的Java代碼(GWT)中,我可以創建一個JavascriptObject,但是這足以容納諸如Microsoft.Maps.Polygon對象嗎?
謝謝!
這真是個好主意。我唯一關心的是緩存大量這些Javascript對象所需的瀏覽器內存。我會在這裏再次嘗試和評論 - 但非常感謝你 - 這是一個非常好的解決方案。 – jcovert
如果您擔心總內存消耗,您可以實現一個LRU(最近使用最少的)緩存,一旦緩存到達一定數量的對象,就扔掉一段時間內尚未使用的舊對象。 Google搜索「javascript lru cache」會爲您提供相關信息。但是,您應該首先測試內存使用情況,看看是否有必要。 – jfriend00