2017-06-07 66 views
0

我在我的MVC項目這樣一個外部SVG文件:通過Internet Explorer可以HEAD,並獲得相同的<object> SVG請求

<object id="demo" type="image/svg+xml" data="/Content/images/demo.svg" style="width: 100%; height: 100%; display:block; right:0; position:absolute "></object> 

目前僅在FF GET請求,ME和Chrome,但如果我打開我的項目在IE 11中,它使HEAD和GET請求同時發生。我無法找到如何避免。這是正常的嗎?還是我有麻煩?說麻煩,因爲該svg文件大小約爲4.5 Mb。網絡監控的樣子:

File  Protocol Method Type   Transferred Cause 
--------------------------------------------------------------- 
demo.svg HTTP/2 HEAD image/svg+xml  4.55 MB  - 
demo.svg HTTP/2 GET image/svg+xml  4.55 MB document 

UPDATE,解決方法:

嘛,我發現了一個奇怪的方式。實際上,在嘗試獲取DOM元素時有點落後,但仍然比讓人們每次下載額外4.5Mb更好,對嗎?

我刪除了object元素,通過XMLHttpRequest對象加載svg文件,並設置div的內容爲responseText(返回整個svg文件爲文本)屬性。不可避免地,在通話功能之前添加一個加載圖像來說:「嘿,它會一秒滯後,不用擔心。」

順便說一下,我試圖使用Blob對象來創建<object>元素的數據屬性的url,但它不適用於IE與<object>

我還想知道如何在IE中防止HEAD請求。

回答

0

這是因爲<object>。嘗試使用<img>代替:

<img src="/Content/images/demo.svg" style="width: 100%; height: 100%; display:block; right:0; position:absolute "> 
+0

我需要SVG文檔中的DOM元素,也不太適合,因爲它的規模的在線使用,所以我必須把它作爲元素:答覆/謝謝 –