ホームページ  >  記事  >  ウェブフロントエンド  >  IE画像キャッシュ document.execCommand("BackgroundImageCache",false,true)_javascriptスキル

IE画像キャッシュ document.execCommand("BackgroundImageCache",false,true)_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 18:10:031025ブラウズ

Pixy メソッドは IE のキャッシュバグの影響を受けており、ちらつきます。実際、この問題は明確に述べられていませんが、実際にはこのバグは条件付きです。つまり、IE のキャッシュは、デフォルトの [自動] ではなく、[ページへのアクセスごと] に設定されています。基本的に、アクセスされるたびに更新をチェックするようにキャッシュを設定するのは開発者だけであるため、このバグは実際のユーザーには影響しません (winxpsp2 および ie6 でのテストによると、ネットワーク アクセス API はまだ呼び出されている可能性がありますが、実際には影響しません)症状としては、マウスが非常に短時間震えますが、画像がちらつきません)。さらに、誰かが IE に背景画像をキャッシュさせる未公開のメソッドを発見しました: document.execCommand("BackgroundImageCache",false,true)
このメソッドを使用すると、API 呼び出しも回避され、IE のメモリに直接キャッシュされるようです。真ん中。

IE6で設定した背景画像はキャッシュされません、サーバーがキャッシュしてもキャッシュしたい場合はキャッシュするしかありません~~~

UIやったことある人。ご存知のとおり、IE (IE7 を除く) はサーバーから背景画像を再読み込みすることが多く、優れた UI インターフェイスが IE (IE7 を除く) に投げ込まれています...

Erik が発見したシンプルな解決策 (IE7 より前の IE で有効。実際、このバグは IE7 で修正されています)

プログラム コード

コードをコピー コードは次のとおりです:

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

Ext のソース コードを読んでいるときに Jack を見つけました。今日、Slocum はこれを考慮して、Ext.js でその実装を提供しました。この詳細から、Ext~

プログラム コード
コードをコピーします コードは次のとおりです:
var isIE = ua.indexOf(" msie" ) > -1, isIE7 = ua.indexOf("msie 7") > -1;
// CSS 画像のちらつきを削除します
if(isIE && !isIE7){
document.execCommand("BackgroundImageCache", false, true);
}catch(e){}
}


今日、Huanyu の Dreamplayer プレーヤーのソース コードを読んだときに、次のことがわかりました。 Huanyu Yu 氏も IE のバックグラウンド キャッシュを修復しましたが、この現象が IE7 には存在しないとは考えていませんでした。これは evml.js の関連コードです~ (ところで、彼は次のようにつぶやいていました。「この人は決して JS を書きません。」セミコロンの追加は以前もそうでしたが、今でもこのように圧縮するにはどうすればよいですか?

プログラム コード


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


少し前に、IE が常にサーバーから背景画像を
リロードして、
Dean が同じことを書いており、他の多くの人が同じことを書いています。
(以前 Microsoft で働いていた同僚による):

ドキュメント。 execCommand("BackgroundImageCache", false, true )

非常に単純ですが、なぜこれがデフォルト設定ではないのか疑問に思います。

/**
* 関連する返信
* by Nicholas C. Zakas @2007-02-26
*/

私は、この決定が論理的な理由で行われたと確信しています…
おそらく、どれだけの背景画像が使用されるかを予想していなかったかもしれません。彼らは、
背景画像をキャッシュしないことが望ましいユースケースがあると考えました。
私は一般的に、設計上の決定と思われるものをオーバーライドすることには興味がありません (これはそうであるようです)。 🎜>これが「バグ」だとは一度も思ったことはありません…通常、バグには「バグをオフにする」というスイッチがありません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。