2010-12-20 75 views
2

我正嘗試使用JavaScript庫添加和創建SVG元素,並且遇到了一個我想排除故障的常見主題。Chrome中的SVG動態呈現

例如,我正在發出一個AJAX請求,並根據返回的經緯度值(使用Polymaps,雖然這也發生在Protovis上)在地圖上生成一個點。當我運行它一次,它工作正常。舉例來說,這是從服務器返回的內容

[{'lat':29.6196787,'lng':-95.6349463},{'lat':42.3584308,'lng':-71.0597732}] 

然後,我將它分配給一個變量,讓庫處理渲染。

當我在交互式功能中添加更多請求並添加更多點時,除非我調整窗口大小或點擊頁面周圍,否則什麼都不會顯示在Chrome上(它就像有點點但它必須刷新) Firefox的一切似乎都很好。

我在想這可能與全局和局部變量範圍有關,但我似乎無法理解爲什麼。有人曾經提到過使用匿名自我調用函數,但我一般都很困惑。我可以得到一些幫助嗎?

乾杯!

+0

你能提供你的問題的一個削減例如網上的任何地方,使我們能夠重現你的結果? – Phrogz 2010-12-20 05:47:33

+0

SVG是可縮放的,Chrome和Firefox以不同的像素大小元素呈現,有時縮放會導致點不顯示,或者在地圖邊框不顯示的情況下。 http://stackoverflow.com/questions/3998254/svg-image-zoom-and-borders/4012063#4012063你的代碼沒有顯示,所以我需要問你可能考慮轉儲的問題;如果你在你的代碼中放置一個非常大的矩形,它會顯示出來嗎? – Wayne 2010-12-21 17:19:44

+0

是的。一切正常呈現正確。當我嘗試重複這個程序時,我發現它在Chrome中無法正確執行,但它在Firefox中正常工作。 – Rio 2010-12-22 03:48:34

回答

1

看看這個,也許會有幫助,圖層對象上有一個重載功能。

http://polymaps.org/docs/layer.html#reload

+0

這會重新加載磁貼,但不一定是點。我認爲這個問題不一定與我使用Polymaps的事實有關。謝謝你! – Rio 2010-12-20 05:53:03