Rumah hujung hadapan web tutorial js IE图片缓存document.execCommand("BackgroundImageCache",false,true)_javascript技巧

IE图片缓存document.execCommand("BackgroundImageCache",false,true)_javascript技巧

May 16, 2016 pm 06:10 PM
ie Cache imej

Pixy方法受到IE的cache bug影响会闪烁。其实并没有说清楚这个问题,但其实该bug是有条件的,即IE的cache设置为Every visit to the page,而不是默认的Automatically。基本上,只有开发者才会把cache设置为每次访问检查更新,所以这个bug其实不会影响真正的用户 (根据在winxpsp2的ie6下测试,虽然可能仍然调用了一次网络存取的api,但是并没有发生实际的请求,症状就是鼠标有极短时间的抖动,但是图像 不会闪烁)。此外有人发现了一个未公开的方法来让IE对背景图进行缓存: document.execCommand("BackgroundImageCache",false,true)
用这种方法甚至避免了api调用,貌似是直接缓存在IE内存中。

IE6下设置背景图片是不会被真正cache住的,就算服务器做了cache,如果想cache住只能~~~

做过UI设计和开发的人一定知道,IE(不包括IE7)会经常从服务器端重新载入背景图片,好端端的UI界面在IE(不包括IE7)中就这样被折腾着......

Erik发现了一个简单的解决办法(针对IE7以下的IE有效,其实在IE7中已经修复了这个Bug)

程序代码

复制代码 代码如下:

document.execCommand("BackgroundImageCache", false, true);

今天阅读Ext的源码时发现Jack Slocum已经考虑到了这一点,在Ext.js中给出了他的实现,在其它Ajax框架中应该还没有这种类似的代码,从这一个细节上就能看出Ext的全面~

程序代码
复制代码 代码如下:

var isIE = ua.indexOf("msie") > -1, isIE7 = ua.indexOf("msie 7") > -1;
// remove css image flicker
if(isIE && !isIE7){
try{
document.execCommand("BackgroundImageCache", false, true);
}catch(e){}
}

今 天阅读幻宇的dreamplayer播放器源码时发现幻宇也针对IE的背景缓存进行了修复,只是他并没考虑到IE7中已经不存在这个现象了,这是 evml.js中的一段相关代码~(顺便嘀咕两句:这家伙,写JS从来不加分号的,以前是这样,现在还是这样,这样的话怎么进行压缩呀,汗~下面的代码按 照我的习惯都已加上分号,哪怕只有两三句而已~)

程序代码
复制代码 代码如下:

window.isIE=navigator.appName.indexOf("Microsoft")==0;
if(isIE){
document.documentElement.addBehavior("#default#userdata");
document.execCommand("BackgroundImageCache",false,true);
}

A while back a lot of people where covering how to work around the bug that IE always
reloads background images from the server, leading to your UI flickering.
Dean wrote one and lots of others wrote the same thing. Today, I saw this simple workaround
(from a fellow Googler who worked at Microsoft before):

document.execCommand("BackgroundImageCache", false, true)

Much simpler but makes me wonder why this is not the default setting?

/**
* 相关回复
* by Nicholas C. Zakas @2007-02-26
*/
I've actually wondered about this "bug" for a while.
I'm sure somewhere along the line this decision was made for a logical reason…
maybe they didn't anticipate how much background images would be used, or maybe they thought
there was some use case under which it would be desirable not to cache the background image.
I'm generally not big on overriding things that seem to be design decisions (which this seems to be).
I've never really thought this was a "bug"…bugs don't usually have switches that say "turn off bug".
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Internet Explorer membuka Edge: Bagaimana untuk menghentikan pengalihan MS Edge Internet Explorer membuka Edge: Bagaimana untuk menghentikan pengalihan MS Edge Apr 14, 2023 pm 06:13 PM

Bukan rahsia lagi bahawa Internet Explorer telah lama tidak disukai, tetapi dengan ketibaan Windows 11, realiti muncul. Daripada kadangkala menggantikan IE pada masa hadapan, Edge kini menjadi penyemak imbas lalai dalam sistem pengendalian terkini Microsoft. Buat masa ini, anda masih boleh mendayakan Internet Explorer dalam Windows 11. Walau bagaimanapun, IE11 (versi terkini) sudah mempunyai tarikh persaraan rasmi, iaitu 15 Jun 2022, dan jam semakin berdetik. Dengan mengambil kira perkara ini, anda mungkin perasan bahawa Internet Explorer kadangkala membuka Edge, dan anda mungkin tidak menyukainya. Jadi mengapa ini berlaku? wujud

Apakah yang perlu saya lakukan jika win11 tidak boleh menggunakan pelayar ie11? (win11 tidak boleh menggunakan pelayar IE) Apakah yang perlu saya lakukan jika win11 tidak boleh menggunakan pelayar ie11? (win11 tidak boleh menggunakan pelayar IE) Feb 10, 2024 am 10:30 AM

Semakin ramai pengguna mula menaik taraf sistem win11 Memandangkan setiap pengguna mempunyai tabiat penggunaan yang berbeza, ramai pengguna masih menggunakan pelayar ie11 Jadi apa yang perlu saya lakukan jika sistem win11 tidak boleh menggunakan pelayar ie. Adakah windows11 masih menyokong ie11? Mari kita lihat penyelesaiannya. Penyelesaian kepada masalah yang win11 tidak boleh menggunakan pelayar ie11 1. Pertama, klik kanan menu mula dan pilih "Command Prompt (Administrator)" untuk membukanya. 2. Selepas dibuka, terus masukkan "Netshwinsockreset" dan tekan Enter untuk mengesahkan. 3. Selepas pengesahan, masukkan "netshadvfirewallreset&rdqu

Bagaimana untuk membatalkan lompat automatik ke Edge apabila membuka IE dalam Win10_Solution ke lompat automatik halaman pelayar IE Bagaimana untuk membatalkan lompat automatik ke Edge apabila membuka IE dalam Win10_Solution ke lompat automatik halaman pelayar IE Mar 20, 2024 pm 09:21 PM

Baru-baru ini, ramai pengguna win10 mendapati bahawa pelayar IE mereka sentiasa melompat ke pelayar tepi secara automatik apabila menggunakan pelayar komputer Jadi bagaimana untuk mematikan lompat ke tepi automatik apabila membuka IE dalam win10? Biarkan tapak ini dengan teliti memperkenalkan kepada pengguna cara melompat ke tepi dan menutup secara automatik apabila membuka IE dalam win10. 1. Kami log masuk ke pelayar tepi, klik... di penjuru kanan sebelah atas, dan cari pilihan tetapan lungsur turun. 2. Selepas kami memasukkan tetapan, klik Penyemak Imbas Lalai di lajur kiri. 3. Akhir sekali, dalam keserasian, kami menandakan kotak untuk tidak membenarkan tapak web dimuat semula dalam mod IE dan mulakan semula pelayar IE.

Bagaimana untuk menyelesaikan masalah bahawa pintasan IE tidak boleh dipadamkan Bagaimana untuk menyelesaikan masalah bahawa pintasan IE tidak boleh dipadamkan Jan 29, 2024 pm 04:48 PM

Penyelesaian kepada pintasan IE yang tidak boleh dipadamkan: 1. Isu kebenaran 2. Kerosakan pintasan 4. Isu pendaftaran; alat; 9. Semak laluan pintasan sasaran; 10. Pertimbangkan faktor lain; Pengenalan terperinci: ​1. Isu kebenaran, klik kanan pada pintasan, pilih "Properties", dalam tab "Security", pastikan anda mempunyai kebenaran yang mencukupi untuk memadamkan pintasan, anda boleh cuba jalankan sebagai pentadbir, dsb .

Penghujung era: Internet Explorer 11 telah bersara, inilah perkara yang perlu anda ketahui Penghujung era: Internet Explorer 11 telah bersara, inilah perkara yang perlu anda ketahui Apr 20, 2023 pm 06:52 PM

15 Jun 2022 ialah hari apabila Microsoft menamatkan sokongan untuk Internet Explorer 11 (IE11) dan menutup bab penyemak imbas warisannya. Syarikat itu telah mengingatkan pengguna tentang tarikh akhir hayat ini untuk beberapa waktu dan menyeru mereka untuk merancang perpindahan ke Microsoft Edge. Microsoft menggabungkan IE11 dengan Windows 8.1 sebagai pelayar web lalai moden untuk Windows. Walaupun ia tidak pernah mencapai ketinggian (semasa) Chrome, ia merupakan penyemak imbas desktop kedua paling banyak digunakan pada tahun 2014, di belakang IE8. Sudah tentu, dengan 20

Cara menggunakan fungsi caching imej dalam uniapp Cara menggunakan fungsi caching imej dalam uniapp Jul 04, 2023 pm 03:40 PM

Uniapp ialah rangka kerja aplikasi merentas platform yang dibangunkan berdasarkan Vue.js, yang boleh dikodkan sekali dan dijalankan pada berbilang terminal. Semasa proses pembangunan, menggunakan imej adalah keperluan yang sangat biasa, dan memuatkan serta memaparkan imej menggunakan lebih banyak sumber dan masa. Untuk meningkatkan prestasi dan pengalaman pengguna aplikasi, Uniapp menyediakan fungsi caching imej, yang boleh mengoptimumkan pemuatan imej dan kelajuan pemaparan secara berkesan. Untuk menggunakan fungsi caching imej dalam Uniapp, anda perlu menggunakan kaedah uni.getImageInfo() untuk mendapatkan maklumat imej, dan kemudian

Bagaimana untuk mendayakan fungsi pecutan IE Bagaimana untuk mendayakan fungsi pecutan IE Jan 30, 2024 am 08:48 AM

Bagaimana untuk mendayakan fungsi pecutan IE? IE terlalu lambat untuk membuka halaman web, kami boleh mendayakan mod pecutan perkakasan di dalamnya. Ramai rakan melaporkan bahawa apabila menggunakan pelayar IE, kelajuan membuka halaman web adalah sangat perlahan, yang juga mempunyai kesan tertentu pada penyemakan imbas web kami. Saya hanya ingin bertanya kepada editor jika terdapat sebarang penyelesaian Dalam kes ini, anda boleh menghidupkan mod pecutan perkakasan pelayar IE. lihat di bawah! Untuk mendayakan fungsi pecutan dalam IE, buka pelayar selamat IE, klik ikon "Tetapan" berbentuk gear di penjuru kanan sebelah atas, dan pilih "Pilihan Internet" untuk masuk, seperti yang ditunjukkan dalam rajah. 2. Klik "Lanjutan" dalam navigasi tab di kepala tetingkap Internet Options, seperti yang ditunjukkan dalam rajah. 3.

Bagaimana untuk menyahpasang pelayar ie9 dari win7 Bagaimana untuk menyahpasang pelayar ie9 dari win7 Jul 10, 2023 am 11:41 AM

Bagaimana untuk menyahpasang ie9 dari win7? Komputer boleh mengendalikan sesuatu di tempat kerja dan juga boleh digunakan untuk menonton rancangan TV. Sama seperti menonton drama, kami biasanya menggunakan pelayar untuk menontonnya Kerana semakin banyak pelayar dan fungsinya adalah sempurna, semakin sedikit orang menggunakan pelayar ie9 sekarang Jadi bagaimana untuk menyahpasang pelayar di win7 untuk menyahpasang pelayar IE9 daripada sistem. Bagaimana untuk menyahpasang pelayar ie9 dari win7. 1. Pertama, klik dua kali untuk membuka MyPC dan pilih untuk menyahpasang atau menggantikan program 2. Kemudian cari "ViewInstallUpdate" dan klik padanya. Anda boleh menemui "windows internet explorer9" di dalam, kemudian klik kanan untuk memadam. Di atas ialah editor dengan wi

See all articles