門戶網(wǎng)站ie兼容性問題學(xué)習(xí)

1住诸、ie8以下不兼容jquery要用原生js操作揽乱,這樣會兼容低版本ie瀏覽器

2冕末、然后自己封裝ajax方法兼容ie8以下瀏覽器

輪播圖用js實(shí)現(xiàn)

兼容ie8一下瀏覽器的顯示錯誤可以用如下方法:

<!--[if lte IE 8]>

<script src="ie-fix.js"></script>

<link href="ie-fix.css" rel="stylesheet" type="text/css">

<![endif]-->

僅當(dāng)瀏覽頁面的瀏覽器是IE 8或更早版本時楔脯,此塊才會應(yīng)用特定于IE的CSS和JavaScript臼予。lte表示“小于或等于”亿傅,但您也可以使用lt,gt瘟栖,gte,!NOT和其他邏輯語法谅阿。

參考鏈接 https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Cross_browser_testing/HTML_and_CSS

https://www.sitepoint.com/internet-explorer-conditional-comments/

還可以用 polyfill

https://remysharp.com/2010/10/08/what-is-a-polyfill

判斷瀏覽器需要時才加載js

if (browserSupportsAllFeatures()) {

main();} else {

loadScript('polyfills.js', main);}

function main(err) {

// actual app code goes in here}

function browserSupportsAllFeatures() {

return window.Promise && window.fetch;}

function loadScript(src, done) {

var js = document.createElement('script');

js.src = src;

js.onload = function() {

done();

};

js.onerror = function() {

done(new Error('Failed to load script ' + src));

};

document.head.appendChild(js);}

關(guān)于瀏覽器的可訪問性

- 移動設(shè)備上的用戶半哟。

- 用戶使用其他瀏覽設(shè)備酬滤,如電視,手表等寓涨。

- 可能沒有最新瀏覽器的舊設(shè)備的用戶盯串。

- 較低規(guī)格設(shè)備的用戶可能具有較慢的處理器。

鍵盤按鍵

document.onkeydown = function(e) {

if(e.keyCode === 13) { // The Enter/Return key

document.activeElement.onclick(e);

}};

常見錯誤#5:DOM操作效率低下

JavaScript使得操作DOM相對容易(即添加戒良,修改和刪除元素)体捏,但沒有做任何事情來促進(jìn)這樣做有效。

一個常見的例子是一次添加一個DOM元素的代碼糯崎。添加DOM元素是一項(xiàng)昂貴的操作几缭。連續(xù)添加多個DOM元素的代碼效率低下愚铡,可能無法正常工作椭盏。

當(dāng)需要添加多個DOM元素時,一種有效的替代方法是使用文檔片段糜烹,從而提高效率和性能薄霜。

例如:

var div = document.getElementsByTagName("my_div");

var fragment = document.createDocumentFragment();

for (var e = 0; e < elems.length; e++) { // elems previously set to list of elements

fragment.appendChild(elems[e]);

}

div.appendChild(fragment.cloneNode(true));

除了本方法本身提高的效率之外某抓,創(chuàng)建附加的DOM元素也很昂貴,而在分離時創(chuàng)建和修改它們?nèi)缓蟾郊铀鼈儠a(chǎn)生更好的性能惰瓜。

剩余參數(shù)和 arguments對象的區(qū)別

剩余參數(shù)和 arguments對象之間的區(qū)別主要有三個:

- 剩余參數(shù)只包含那些沒有對應(yīng)形參的實(shí)參否副,而 arguments 對象包含了傳給函數(shù)的所有實(shí)參。

- arguments對象不是一個真正的數(shù)組崎坊,而剩余參數(shù)是真正的 Array實(shí)例备禀,也就是說你能夠在它上面直接使用所有的數(shù)組方法,比如 sort流强,map痹届,forEach或pop。

- arguments對象還有一些附加的屬性 (如callee屬性)打月。

Objects 和 maps 的比較

Object 和 Map 類似的是队腐,它們都允許你按鍵存取一個值、刪除鍵奏篙、檢測一個鍵是否綁定了值柴淘。因此(并且也沒有其他內(nèi)建的替代方式了)過去我們一直都把對象當(dāng)成 Map 使用。不過 Map 和 Object 有一些重要的區(qū)別秘通,在下列情況里 Map 會是更好的選擇:

- 一個對象的鍵只能是字符串或者 Symbols为严,但一個 Map 的鍵可以是任意值,包括函數(shù)肺稀、對象第股、基本類型。

- 你可以通過 size 屬性直接獲取一個 Map 的鍵值對個數(shù)话原,而 Object 的鍵值對個數(shù)只能手動計(jì)算夕吻。

- Map 是可迭代的诲锹,而 Object 的迭代需要先獲取它的鍵數(shù)組然后再進(jìn)行迭代。

- Object 都有自己的原型涉馅,所以原型鏈上的鍵名有可能和對象上的鍵名產(chǎn)生沖突归园。雖然 ES5 開始可以用 map = Object.create(null) 來創(chuàng)建一個沒有原型的對象,但是這種用法不太常見稚矿。

- Map 在涉及頻繁增刪鍵值對的場景下會有些性能優(yōu)勢庸诱。

像上面的例子中,如果你執(zhí)行var a1 = new A(); var a2 = new A(); 那么 a1.doSomething事實(shí)上會指向Object.getPrototypeOf(a1).doSomething晤揣,它就是你在 A.prototype.doSomething 中定義的內(nèi)容桥爽。也就是說:Object.getPrototypeOf(a1).doSomething == Object.getPrototypeOf(a2).doSomething == A.prototype.doSomething〉锒桑【補(bǔ)充:實(shí)際上當(dāng)執(zhí)行a1.doSomething()相當(dāng)于執(zhí)行Object.getPrototypeOf(a1).doSomething.call(a1)==A.prototype.doSomething.call(a1)】

解構(gòu)賦值語法是一個 Javascript 表達(dá)式聚谁,這使得可以將值從數(shù)組或?qū)傩詮膶ο筇崛〉讲煌淖兞恐?br>

箭頭函數(shù)不會創(chuàng)建自己的this,它只會從自己的作用域鏈的上一層繼承this

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市滞诺,隨后出現(xiàn)的幾起案子形导,更是在濱河造成了極大的恐慌,老刑警劉巖习霹,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朵耕,死亡現(xiàn)場離奇詭異,居然都是意外死亡淋叶,警方通過查閱死者的電腦和手機(jī)阎曹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煞檩,“玉大人处嫌,你說我怎么就攤上這事≌迮龋” “怎么了熏迹?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凝赛。 經(jīng)常有香客問我注暗,道長,這世上最難降的妖魔是什么墓猎? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任捆昏,我火速辦了婚禮,結(jié)果婚禮上毙沾,老公的妹妹穿的比我還像新娘骗卜。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布寇仓。 她就那樣靜靜地躺著勇皇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪焚刺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天门烂,我揣著相機(jī)與錄音乳愉,去河邊找鬼。 笑死屯远,一個胖子當(dāng)著我的面吹牛蔓姚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慨丐,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼坡脐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了房揭?” 一聲冷哼從身側(cè)響起备闲,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捅暴,沒想到半個月后恬砂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蓬痒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年泻骤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梧奢。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡狱掂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亲轨,到底是詐尸還是另有隱情趋惨,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布瓶埋,位于F島的核電站希柿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏养筒。R本人自食惡果不足惜曾撤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晕粪。 院中可真熱鬧挤悉,春花似錦、人聲如沸巫湘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至诀诊,卻和暖如春洞渤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背属瓣。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工载迄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抡蛙。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓护昧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粗截。 傳聞我的和親對象是個殘疾皇子惋耙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • 瀏覽器兼容性問題總結(jié) 一、簡介 瀏覽器內(nèi)核主要包含兩種引擎熊昌,一是渲染引擎绽榛,另一個是 js 引擎,常見的內(nèi)核有 Tr...
    zhangAllen閱讀 1,698評論 0 0
  • 以前對瀏覽器兼容性問題只是大概知道一些點(diǎn)浴捆,沒想到這次真正著手去做的時候蒜田,還是碰到了很多問題。剛開始的時候一邊解決問...
    沮溺閱讀 27,817評論 2 11
  • 1选泻、css3媒體查詢 IE8不支持媒體查詢 解決:respond.js冲粤,在頁面中所有css文件的引用位置之后引用R...
    LIsPeri閱讀 774評論 0 0
  • 兼容性問題: 一、CSS兼容性 1.felx布局在iOS8上有問題页眯。解決:加-webkit前綴 2.ie6梯捕、7和遨...
    af13e05a9b9a閱讀 828評論 0 0
  • 一:Vue 2.x cli 1、 使用vue2.0的項(xiàng)目在IE11版本瀏覽器中是空白的 或者路由跳轉(zhuǎn)但是而頁...
    Marting424閱讀 10,616評論 0 1