精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Vue兼容IE9全功能正常使用的全面解決方案

開發(fā) 前端
本文將針對使用 Vue 生態(tài)開發(fā)完成的網站,以 ie9 版本為基礎兼容目標,實現(xiàn)全功能正常使用的全面兼容解決方案。

Vue兼容IE9全功能正常使用的全面解決方案

前言

背景情況

  • vue - 2.5.11
  • vue-cli 使用模板 webpack-simple
  • http請求:axios

Vue 官方對于 ie 瀏覽器版本兼容情況的描述是 ie9+,即是 ie9 及更高的版本。經過測試,Vue 的核心框架 vuejs 本身,以及生態(tài)的官方核心插件(VueRouter、Vuex等)均可以在 ie9 上正常使用。

Vue 的作者尤雨溪對于 Vue 的學習建議 中有提及為了將項目更好的生態(tài)化/工程化,要盡可能學習及使用新的 ECMAScript 規(guī)范。目前 ES6/ES2015 是可用度和穩(wěn)定度較高的規(guī)范,文檔齊全,國內還有 阮一峰 《ECMAScript 6 入門》 做了大量的文檔翻譯,開發(fā)環(huán)境可謂完善。然而版本較舊的瀏覽器并不支持 es6 規(guī)范,尤其是 ie 瀏覽器,即使是***的 ie11 版本,對于 es6 規(guī)范也支持得并不全。如此則需要對所有原生不支持 ES6 特性的瀏覽器做兼容性處理。

本文將針對使用 Vue 生態(tài)開發(fā)完成的網站,以 ie9 版本為基礎兼容目標,實現(xiàn)全功能正常使用的全面兼容解決方案。

ES6兼容

在 ie9 的環(huán)境上,es6 的部分新對象、表達式,并不支持,解決方案是使用 babel-polyfill 組件,它可以將 es6 的代碼翻譯成低版本瀏覽器可以識別的 es5 代碼

安裝完成后,在項目的主入口文件 main.js 的首行就可以直接引用

在項目使用 vue-cli 生成的代碼中,根目錄有一個 .babelrc 文件,這是項目使用 babel 的配置文件。在默認生成的模板內容中,增加 "useBuiltIns": "entry" 的設置內容,這是一個指定哪些內容需要被 polyfill(兼容) 的設置

useBuiltIns 有三個設置選項

  • false - 不做任何操作
  • entry - 根據瀏覽器版本的支持,將 polyfill 需求拆分引入,僅引入有瀏覽器不支持的polyfill
  • usage - 檢測代碼中 ES6/7/8 等的使用情況,僅僅加載代碼中用到的 polyfill

這里推薦設置為 entry ,完整的 .babelrc 內容如下:

加入這些代碼后,工程里的大部分內容已可兼容到 ie9 版本

Number對象

即使在使用 babel-polyfill 做代碼翻譯后,發(fā)現(xiàn)還是有一些 es6 的新特性并沒有解決,比如說 Number 對象的 parseInt 和 parseFloat 方法

es6 將全局方法 parseInt() 和 parseFloat() ,移植到 Number 對象上面,行為完全保持不變。這樣做的目的,是逐步減少全局性方法,使得語言逐步模塊化。

解決這個問題不需要引入包來解決,同樣在項目主入口文件 main.js 加入以下代碼(代碼盡可能靠前,***是在引用 babel-polyfill 之后 )

requestAnimationFrame方法

window.requestAnimationFrame 是瀏覽器用于定時循環(huán)操作的一個接口,類似于 setTimeout,主要用途是按幀對網頁進行重繪。

requestAnimationFrame 的優(yōu)勢,在于充分利用顯示器的刷新機制,比較節(jié)省系統(tǒng)資源。顯示器有固定的刷新頻率(60Hz或75Hz),也就是說,每秒最多只能重繪60次或75次,requestAnimationFrame 的基本思想就是與這個刷新頻率保持同步,利用這個刷新頻率進行頁面重繪。此外,使用這個API,一旦頁面不處于瀏覽器的當前標簽,就會自動停止刷新。這就節(jié)省了CPU、GPU和電力。

不過有一點需要注意,requestAnimationFrame 是在主線程上完成。這意味著,如果主線程非常繁忙,requestAnimationFrame 的動畫效果會大打折扣。

window.requestAnimationFrame() 方法告訴瀏覽器您希望執(zhí)行動畫并請求瀏覽器在下一次重繪之前調用指定的函數(shù)來更新動畫。該方法使用一個回調函數(shù)作為參數(shù),這個回調函數(shù)會在瀏覽器重繪之前調用。

有部分第三方組件就使用了這個方法,例如部分文件上傳、圖片處理類的組件;那么在這類型的組件在 ie9 下使用時,會報出

window.requestAnimationFrame() 的***兼容 ie 版本為 10,那么在 ie9 上做兼容就需要制作 requestAnimationFrame polyfill

Gist:requestAnimationFrame polyfill

這部分代碼同樣是盡可能在網站入口處就執(zhí)行

http網絡請求(跨域)

在大多數(shù)的 Web 項目中(以 JavaWeb 為例),網站的頁面和服務(至少是 controller 層)在同一個工程進行開發(fā)和部署,在大前端的新型模式下,我們建議盡可能對網站的前端和后端進行完全分離,前后端分離的好處和意義這里不再贅述。

既然是前后端分離,那么部署也必然是各自獨立部署,不同的訪問路徑,就會產生跨域訪問的問題(同一站點,不同端口號也是跨域)

在此設定背景情況:

  • 服務端已完整開啟 CROS 跨域支持
  • http 組件使用 axios
  • axios 設置 withCredentials 為 true 開啟跨域訪問時攜帶 cookie 數(shù)據

高版本瀏覽器(ie10+ 或 chrome, ff)僅需要完成背景情況中的功能,即可支持跨域數(shù)據請求功能

axios 進行數(shù)據請求時,默認使用 XMLHttpRequest 對象,在檢測到當前請求是跨域訪問時,axios 會測試瀏覽器是否支持 XDomainRequest 對象,若支持則優(yōu)先使用。

ie8 / ie9 的 XMLHttpRequest 對象,不支持跨域訪問,該對象在 ie10 后才原生支持跨域訪問。微軟的解決方案是在 ie8 / ie9 中提供了 XDomainRequest(XDR) 對象來進行解決跨域問題,雖然使用該對象可以跨域訪問成功,并返回數(shù)據,但它卻依然是一個功能不完整的半成品,它的使用有諸多限制:

  • XDR 僅支持 GET 與 POST 兩種請求方式
  • XDR 不支持自定義的請求頭,若服務端使用 header 的自定義參數(shù)進行做身份驗證,則不可用
  • 請求頭的 Content-Type 只允許設置為 text/plain
  • XDR 不允許跨協(xié)議的請求,如果網頁在 HTTP 協(xié)議下,就只能請求 HTTP 協(xié)議下的接口,不能訪問 HTTPS 接口
  • XDR 只接受HTTP/HTTPS 的請求
  • 發(fā)起請求的時候,不會攜帶 authentication 或 cookies

微軟雖然提供了解決方案,但卻是不折不扣的雞肋,根本無法勝任系統(tǒng)中各種場景的數(shù)據請求需求,至此,axios 對 ie9 的跨域數(shù)據請求已無能為力。

***解決方案:代理(proxy)

雖然 axios 對 ie9 跨域已無能為力,但前端項目打包的解決方案 webpack 提供了一個優(yōu)雅而徹底解決問題的方式:代理

devServer.proxy

webpack 的 devServer.proxy 的功能是由 http-proxy-middleware 項目來實現(xiàn)的

實現(xiàn)原理是將目標位置的請求代理為前端服務本地的請求,既然是代理成為本地的請求,就不存在跨域的問題,axios 就會用回 XMLHttpRequest 對象進行數(shù)據請求,一切都恢復正常了,header、cookies、content-type、authentication 等內容都被正確傳遞到服務端。

項目中 webpack.config.js 的配置

配置中指定了將 http://localhost:8081/myserver 服務的位置代理為本地前端服務的 http://localhost:8080/api。例如需要讀取用戶信息的原請求是 http://localhost:8081/myserver/user/zhangsan,代理后,就變?yōu)?http://localhost:8080/api/user/zhangsan。

即是 /api 的前綴代表了服務端,所以在使用 axios 時,需要對每個服務端請求都增加上 /api 的前綴;通常在項目開發(fā)中,需要對數(shù)據請求組件 axios 進行二次封裝,以達到統(tǒng)一設置默認參數(shù),統(tǒng)一數(shù)據請求入口等目的,那么此時就只需要在二次封裝的文件里統(tǒng)一調整請求前綴即可。

不過,webpack 的 devServer.proxy 僅在開發(fā)模式下可用,生產模式下無法使用。開發(fā)模式下,調試服務可以讀取 webpack.config.js 中的配置內容進行實時代理,而項目在部署到生產環(huán)境前,需要將工程進行編譯轉換成靜態(tài)的 js 文件,沒有調試服務的支撐自然是無法進行請求代理的。

nginx 配置

雖然 devServer.proxy 的功能僅能工作于開發(fā)模式,那么在生產模式下,自然也是有解決方案的;通常 Vue 的項目在編譯成最終的 js 文件后,僅需要靜態(tài)服務器即可,這其中又以 nginx 為***選擇方案,輕量、高性能、高并發(fā)、反向代理服務等均為其優(yōu)點,這里需要做的數(shù)據請求代理的功能就使用到了 nginx 的 反向代理 功能

conf/nginx.conf 文件配置增加以下內容

 

該配置同樣是將 http://localhost:8081/myserver/ 的目標服務端位置代理為本地服務的 /api 路徑,如此,生產環(huán)境下的數(shù)據請求問題也得以解決 。

責任編輯:龐桂玉 來源: 前端大全
相關推薦

2011-07-05 12:32:30

打印機解決方案

2017-09-19 14:40:07

軟件授權比特安索

2009-05-14 19:10:13

IDC虛擬化虛擬機

2011-03-16 16:46:25

360安全瀏覽器

2010-10-15 14:22:26

IE9智能過濾

2011-03-08 11:14:35

IE7、IE8、IE

2013-05-08 10:15:49

紅帽

2010-09-15 10:32:54

IE8兼容

2009-12-06 09:32:39

IE9Chrome

2020-09-27 16:07:33

潮數(shù)

2010-09-15 10:25:18

IE7IE8CSS兼容性

2010-12-16 09:49:54

嵌入式設備服務器

2011-02-14 14:21:10

IE9IE8Chrome

2010-12-10 14:57:41

IE9CSS3

2010-12-17 09:16:21

2010-03-09 09:04:00

IE9Google

2010-03-19 09:21:17

IE9新特性

2010-08-27 14:35:37

IEFirefox兼容

2010-09-16 11:08:50

JSIEFirefox

2010-03-15 09:45:56

IE9發(fā)布
點贊
收藏

51CTO技術棧公眾號

丁香五六月婷婷久久激情| 色婷婷色综合| 黑丝美女久久久| 日本一区高清不卡| 国产精品亚洲lv粉色| 欧美xxx在线观看| 亚洲精品电影在线| 国产日产久久高清欧美一区| 成人午夜电影在线播放| 久久一区二区三区视频| ww国产内射精品后入国产| 三级国产在线观看| 精品影视av免费| 国内精品久久影院| 日本综合在线观看| 狠狠久久伊人| 欧美精品v日韩精品v韩国精品v| 97中文字幕在线| av在线播放av| 91色视频在线| 91沈先生播放一区二区| 成人免费一级片| 精品成人免费| 久久亚洲国产精品| 丁香花五月婷婷| 国产伦精品一区二区三区在线播放 | 天堂av中文字幕| 国产一区视频网站| 国产精品高潮视频| 国产九色在线播放九色| 国产精品久久| 久久久成人精品| 波多野结衣一二三四区| 欧美猛男同性videos| 欧美精品一区二区在线播放 | 日韩成人免费在线视频| 亚洲澳门在线| 日韩一区二区三区在线播放| a天堂中文字幕| 亚洲最好看的视频| 日韩精品中文字幕在线观看| 亚洲精品久久一区二区三区777| 成人国产精品一区二区网站| 欧美日韩成人综合在线一区二区| www.xxx亚洲| 超碰97免费观看| 日韩xxx视频| 日日欢夜夜爽一区| 青草热久免费精品视频| 免费观看一区二区三区毛片| 影音先锋久久精品| 久久久久久久久久久人体| 日本一级二级视频| 婷婷成人基地| 久久久久www| 日本女人性生活视频| 欧美岛国激情| 中文字幕精品一区久久久久| 亚洲精品国产精品国自产网站| 久久av超碰| 夜夜嗨av一区二区三区免费区 | 欧美激情a在线| 真实国产乱子伦对白在线| 亚洲色图网站| 欧美大片欧美激情性色a∨久久| 青青操视频在线播放| 国产一区二区三区四区三区四 | 免费一级a毛片| 在线看片不卡| 欧美黑人国产人伦爽爽爽| 久久精品99久久久久久| 国内久久精品| 欧美在线视频免费播放| 精品久久久久久久久久久久久久久久| 视频一区二区中文字幕| 国产精品久久久久久久av大片| 中文 欧美 日韩| 国产在线精品一区二区三区不卡| 91传媒在线免费观看| 国产 日韩 欧美 精品| 91免费视频网址| 婷婷五月色综合| 性xxxxfjsxxxxx欧美| 亚洲国产综合视频在线观看| 日本免费一级视频| 欧美午夜三级| 欧美tickling挠脚心丨vk| 亚洲专区区免费| 99久久99久久精品国产片果冰| 久热精品视频在线免费观看| 国产成人在线播放视频| 日韩激情视频网站| 99视频免费观看| 中文字幕中文字幕99| 国产精品乱码久久久| 成人性生交大片| 图片区小说区区亚洲五月| 色呦呦在线免费观看| 日韩欧美一区二区在线| 天天操夜夜操很很操| 香蕉人人精品| 欧美高跟鞋交xxxxxhd| 一级片免费在线播放| 久久91精品国产91久久小草 | 亚洲a视频在线观看| www精品美女久久久tv| 日本不卡一区二区三区四区| 三级中文字幕在线观看| 欧美一级日韩免费不卡| 久久久视频6r| 一本色道久久综合一区| 成人两性免费视频| 国产在线观看网站| 亚洲成人高清在线| 男女视频在线观看网站| 国产一区99| 97精品一区二区三区| 国产特级aaaaaa大片| 国产午夜久久久久| 欧美在线一区视频| 日本在线视频一区二区三区| 伊人久久五月天| 综合激情网五月| 国产成人在线网站| 在线一区亚洲| 欧美风情在线视频| 亚洲精品xxxx| 国产对白videos麻豆高潮| 国产一区二区福利视频| 污视频在线免费观看一区二区三区 | 国产精品久久久久久免费播放| 久久免费视频色| 国产深夜男女无套内射| 91精品久久久久久综合五月天| 日本高清不卡一区二区三区视频 | 国产一级成人av| 欧美成人午夜影院| 国产精品伦理一区| 国产精品大尺度| 五月天激情视频在线观看| 伊人久久大香线蕉综合网蜜芽| 性欧美亚洲xxxx乳在线观看| 高h放荡受浪受bl| 亚洲午夜精品网| 337p日本欧洲亚洲大胆张筱雨| 国产精品二区不卡| 成人做爽爽免费视频| 日本在线观看网站| 欧美精品在欧美一区二区少妇 | 一区二区三区欧美日| 久久精品视频在线观看免费| 国产毛片一区二区三区| 国产精品1234| 91高清在线| 欧美年轻男男videosbes| 后入内射无码人妻一区| 久久精品免费看| 久久久久亚洲av无码专区喷水| 亚洲精品第一| 久操成人在线视频| 亚洲毛片欧洲毛片国产一品色| 亚洲国产视频一区二区| 女同性恋一区二区三区| 一区二区日本视频| 欧美日韩精品久久久免费观看| 久九九久频精品短视频| 中文字幕久热精品在线视频 | 亚洲国产91精品在线观看| 国产午夜视频在线播放| 久久综合色综合88| 爱情岛论坛亚洲首页入口章节| 欧美aaaa视频| 国产精品免费一区二区三区在线观看| 黄色漫画在线免费看| 亚洲视频在线观看免费| 亚洲综合视频在线播放| 一区二区欧美国产| 欧美 日本 国产| 久久精品国产一区二区三 | av2020不卡| 欧美日日夜夜| 丝袜亚洲欧美日韩综合| 精品久久国产视频| 欧美日韩美女在线观看| 国产黄色录像视频| 高清不卡一区二区| 国产日韩成人内射视频| 97国产成人高清在线观看| 国产精品播放| 国产综合色在线观看| 久久成人这里只有精品| 日本国产在线| 91麻豆精品国产91久久久资源速度 | 少妇搡bbbb搡bbb搡打电话| 噜噜爱69成人精品| 免费观看中文字幕| 九九免费精品视频在线观看| 亚洲精品欧美一区二区三区| 大胆人体一区二区| 免费91麻豆精品国产自产在线观看| 五月婷婷开心中文字幕| 欧美乱妇23p| 欧美精品韩国精品| 一区二区高清视频在线观看| 无码人妻丰满熟妇啪啪欧美| 国产jizzjizz一区二区| 污视频网址在线观看| 国产农村妇女精品一区二区| 一区精品在线| 免费av一区二区三区四区| 91免费版黄色| 亚洲成人1区| 国产精品第一页在线| 波多野结衣久久| 久久久精品影院| 川上优的av在线一区二区| 亚洲成人aaa| 国产福利视频导航| 欧美日韩国产精选| 日批视频免费在线观看| 婷婷六月综合网| 免费无遮挡无码永久在线观看视频 | 欧美一区二区福利在线| 男人天堂av在线播放| 国产又黄又大久久| 国产精品69精品一区二区三区| 日本丰满少妇裸体自慰 | 国产精品视频黄色| 99热免费精品| 国产一级不卡视频| 一区二区蜜桃| 久久久国产精华液999999| 精品高清久久| 欧美日韩精品一区| 亚洲国产网址| 久久亚洲一区二区| 欧美有码在线| 九九九热999| 久久动漫网址| 国产青春久久久国产毛片| 9l亚洲国产成人精品一区二三| 亚洲在线观看视频| 日本精品在线播放| 成人福利在线观看| 99国内精品久久久久| 国产人妖伪娘一区91| 成人国产精品一区二区免费麻豆 | 91丨porny丨国产入口| www.四虎在线| 成人高清av在线| 国产污在线观看| 99在线精品免费| 久久偷拍免费视频| 久久新电视剧免费观看| 亚洲精品色午夜无码专区日韩| 久久久国产一区二区三区四区小说 | 综合伊人久久| 国产91精品一区二区绿帽| 9国产精品午夜| 久久精品99久久| 伊人久久大香线蕉| 手机成人在线| 色琪琪久久se色| 日本一道在线观看| 亚洲精品日本| 国产成人手机视频| 久久精品999| 色综合久久久无码中文字幕波多| 成人av在线播放网站| 免费看黄色aaaaaa 片| 亚洲国产成人午夜在线一区| 日本无删减在线| 欧美一区二区三区在线视频| 国产精品一品二区三区的使用体验| 欧美日韩国产天堂| 911美女片黄在线观看游戏| 91精品国产色综合久久ai换脸| 国产免费高清视频| 日日夜夜免费精品| 成人在线国产精品| eeuss国产一区二区三区四区| 国产亚洲一区二区三区在线播放 | 亚洲激情图片网| 亚洲欧美另类在线| 欧美一级特黄视频| 欧美丰满少妇xxxbbb| 丁香六月色婷婷| 亚洲香蕉伊综合在人在线视看| 一区二区三区视频在线观看视频| 欧美老少做受xxxx高潮| 麻豆视频在线观看免费网站黄| 国产精品美女www| eeuss鲁片一区二区三区| 日韩尤物视频| 欧美日韩专区| www.色偷偷.com| 成人视屏免费看| 貂蝉被到爽流白浆在线观看| 亚洲一区二区三区不卡国产欧美| 国内精品国语自产拍在线观看| 欧美韩国亚洲| 91大片在线观看| 国产欧美一区| 日韩 欧美 视频| 久久99精品久久久| 亚洲调教欧美在线| 亚洲色图丝袜美腿| 亚洲自拍一区在线观看| 日韩免费电影网站| av黄色在线观看| 91精品国产高清久久久久久久久| 亚洲成a人片777777久久| 精品国产一区二区三区麻豆免费观看完整版 | 亚洲精品二区三区| 国产激情在线观看视频| 成人永久免费视频| 亚洲波多野结衣| 欧美日韩亚洲高清一区二区| 欧洲亚洲在线| 97超级碰碰人国产在线观看| 99久久香蕉| 国产一二三四区在线观看| 老司机午夜精品99久久| 一本色道久久综合亚洲精品图片| 欧美女优在线| 久久综合久中文字幕青草| jizz久久久久久| 欧美在线播放一区二区| 亚洲男人第一av| 欧美日韩精品欧美日韩精品一| 男操女在线观看| 45www国产精品网站| 九色丨蝌蚪丨成人| 国产在线视频在线| 国产中文一区二区三区| 波多野结衣欲乱| 精品视频一区二区三区免费| 国产粉嫩一区二区三区在线观看| 日本精品久久久久久久| 青青草这里只有精品| 国产成人在线免费看| 97精品电影院| 中文字幕在线观看视频网站| 亚洲激情成人网| 日本黄色免费在线| 久久精品日产第一区二区三区| 制服诱惑一区二区| www.17c.com喷水少妇| 午夜欧美一区二区三区在线播放| 黄片毛片在线看| 91精品国产乱码久久久久久蜜臀| 欧美激情久久久久久久久久久| 91成人在线观看喷潮教学| 99re6这里只有精品视频在线观看| 男女视频免费看| 亚洲视频在线看| 国产成人精品一区二区三区免费| 一区二区三区四区在线视频 | 一区二区免费在线播放| 性欧美18一19性猛交| 国内精品一区二区三区| 神马日本精品| 中文字幕视频在线免费观看| 国产精品不卡一区二区三区| 久99久在线| 日韩电影免费在线| 神马久久精品综合| 精品久久久久久久久久久久久久久| 精品午夜福利在线观看| 国产激情一区二区三区四区 | 巨胸大乳www视频免费观看| 色狠狠综合天天综合综合| av在线天堂| 91青青草免费在线看| 久久av在线| 三级在线观看免费大全| 欧美刺激脚交jootjob| 在线观看涩涩| 亚洲一区三区| 成人av免费观看| 中文字幕在线观看高清| 欧美激情xxxx性bbbb| 亚洲婷婷伊人| 99九九精品视频| 欧美日韩在线另类| 欧美jizz18hd性欧美| 国产一区二区中文字幕免费看| 视频一区中文字幕国产| 国产精品 欧美激情| 日韩电影中文字幕| 五月婷婷之婷婷| 久久久亚洲精品一区二区三区| 96日本xxxxxⅹxxx17| 97精品伊人久久久大香线蕉| 99久久综合狠狠综合久久aⅴ| www男人天堂| 欧美精品免费视频| 日韩伦理在线| 国产一级黄色录像片| 久久久久久久久一|