所以我遇到了一個關於safari的奇怪問題。我正在爲我們公司開發一個新網站,並且我正在使用PJAX加載網頁內容。大多數我使用的srcset財產如下面的示例代碼顯示圖像的:Ajax在Safari中加載的圖片不尊重srcset
<img src="/img/projects/{{ post.cover-image }}.jpg" alt="{{ post.title }}"
srcset="/img/projects/{{ post.cover-image }}-400.jpg 400w,
/img/projects/{{ post.cover-image }}-600.jpg 600w,
/img/projects/{{ post.cover-image }}-900.jpg 900w,
/img/projects/{{ post.cover-image }}-900.jpg 1200w,
/img/projects/{{ post.cover-image }}-900.jpg 1800w,
/img/projects/{{ post.cover-image }}-900.jpg 2400w"
sizes = "(min-width: 2400px) 900px,
(min-width: 1800px) 600px,
(min-width: 1200px) 500px,
(min-width: 900px) 500px,
(min-width: 600px) 600px,
(min-width: 400px) 400px" />
注意,這是正在修建與化身,所以變量到位。
我在這些圖像上使用對象適合,我認識到它有自己的問題(主要是IE),但這是一個不同的主題。無論最初加載頁面還是通過點擊鏈接通過PJAX拉入頁面,Firefox和Chrome都能正確顯示正確的圖像。
Safari出現問題,如果頁面是加載的初始頁面,圖像將正確顯示,但當頁面通過點擊鏈接通過PJAX加載時,srcset中的最小圖像是正在加載的圖像。它也看起來像對象適合可能會打破以及由PJAX加載,但不是在初始加載。
這裏是一個網頁的鏈接,你可以看到這種情況發生的例子:http://insight.insightcreative.info/work
如果直接加載頁面,或在硬刷新,圖像將看起來都很好。但是,如果您通過單擊鏈接離開頁面,然後再次單擊工作鏈接返回到該頁面,則會看到所有圖像突然質量都很差,並正在加載-400(400px)只有圖像的大小版本。
發生的另一個奇怪的事情,如在此頁面上:http://insight.insightcreative.info/work/river-valley-bank-50th-anniversary.html是圖像將只顯示,如果最初加載頁面。如果您通過鏈接(它是工作頁面上的第一個項目)通過PJAX導航到頁面,則圖像甚至不會顯示。
起初我還以爲這些問題可能發生的,因爲我沒有足夠的尺寸包括在我的srcset圖像屬性,但在測試他們與包括大小屬性之後,他們仍然不正常工作。我不知道這是否是關於Safari瀏覽器的ajax,css或html問題。
任何人可以提供的洞察力將是了不起的。 再一次,這些只是我見過的反映在Safari中的問題。
編輯
至於圖像質量,我通過我的所有的圖像消失了,並下令從最高質量的圖像srcset第一,質量最低最後一種解決方法。由於Safari只查看srcset中的第一個圖像,因此至少可以獲得高質量的圖像。我仍然無法弄清楚爲什麼Safari在加載AJAX時將某些圖像設置爲0的高度,但我會爲此提出一個不同的問題。
嘗試沒有src標記 –
@AhmedSunny我給了這個試驗,只是爲了測試,如果這會改變結果,但沒有改變(Safari仍然加載第一個srcset)。我也不想刪除原始的src標記,因爲我仍然需要那些不支持srcset的瀏覽器。謝謝你的想法。 –