我正嘗試使用JavaScript庫添加和創建SVG元素,並且遇到了一個我想排除故障的常見主題。Chrome中的SVG動態呈現
例如,我正在發出一個AJAX請求,並根據返回的經緯度值(使用Polymaps,雖然這也發生在Protovis上)在地圖上生成一個點。當我運行它一次,它工作正常。舉例來說,這是從服務器返回的內容
[{'lat':29.6196787,'lng':-95.6349463},{'lat':42.3584308,'lng':-71.0597732}]
然後,我將它分配給一個變量,讓庫處理渲染。
當我在交互式功能中添加更多請求並添加更多點時,除非我調整窗口大小或點擊頁面周圍,否則什麼都不會顯示在Chrome上(它就像有點點但它必須刷新) Firefox的一切似乎都很好。
我在想這可能與全局和局部變量範圍有關,但我似乎無法理解爲什麼。有人曾經提到過使用匿名自我調用函數,但我一般都很困惑。我可以得到一些幫助嗎?
乾杯!
你能提供你的問題的一個削減例如網上的任何地方,使我們能夠重現你的結果? – Phrogz 2010-12-20 05:47:33
SVG是可縮放的,Chrome和Firefox以不同的像素大小元素呈現,有時縮放會導致點不顯示,或者在地圖邊框不顯示的情況下。 http://stackoverflow.com/questions/3998254/svg-image-zoom-and-borders/4012063#4012063你的代碼沒有顯示,所以我需要問你可能考慮轉儲的問題;如果你在你的代碼中放置一個非常大的矩形,它會顯示出來嗎? – Wayne 2010-12-21 17:19:44
是的。一切正常呈現正確。當我嘗試重複這個程序時,我發現它在Chrome中無法正確執行,但它在Firefox中正常工作。 – Rio 2010-12-22 03:48:34