精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

中文字幕乱码日本亚洲一区二区| 欧美在线高清| 欧美日韩国产影片| 777久久精品一区二区三区无码| www.久久色| 美女黄网久久| 神马久久桃色视频| www.啪啪.com| 亚洲成人1区| 精品国产乱码久久久久久虫虫漫画| 色大师av一区二区三区| 亚洲黄色在线播放| 日本不卡中文字幕| 国产69精品久久久久99| 一级在线观看视频| 精品伊人久久久| 欧美精品久久久久久久久老牛影院| 国产a级片网站| 77导航福利在线| 91色九色蝌蚪| 成人动漫视频在线观看免费| www.久久久久久久| 亚洲国产免费看| 久久九九全国免费精品观看| 全黄一级裸体片| www国产精品| 69p69国产精品| 91九色丨porny丨国产jk| 精品176二区| 国产网红主播福利一区二区| 国产a一区二区| 97在线公开视频| 爽好久久久欧美精品| 久久久人成影片一区二区三区| eeuss中文字幕| 国产一区二区三区网| 日韩av中文在线| 最新版天堂资源在线| 国产午夜久久av| 欧美日韩一区成人| 男女污污的视频| 欧美momandson| 欧美日韩激情小视频| 国产一区二区四区| 手机av在线播放| 亚洲欧美激情插| 超碰免费在线公开| 青青青青在线| 国产精品不卡一区| 在线不卡视频一区二区| www视频在线观看免费| 国产亚洲综合色| 日本精品一区二区三区不卡无字幕| 婷婷在线免费观看| 不卡一区在线观看| 精品国产一区二区三区四区vr| 亚洲国产精品国自产拍久久| 国产中文字幕精品| 97视频资源在线观看| 国产ts变态重口人妖hd| 国产丶欧美丶日本不卡视频| 亚洲最大av在线| 午夜美女福利视频| 成人午夜免费视频| 久久99国产精品| 可以免费看污视频的网站在线| www亚洲一区| 视频在线一区二区三区| 成人77777| 1区2区3区精品视频| 99精品一级欧美片免费播放| 97caopron在线视频| 一区二区三区日韩精品视频| 男女激情免费视频| 中文字幕21页在线看| 91黄色免费看| 日韩欧美中文视频| 欧美三级午夜理伦三级小说| 日韩精品在线视频美女| 精品国产aaa| 欧美在线影院| 欧美亚洲国产日本| 中文字幕在线观看第二页| 精品伊人久久久久7777人| 超碰97网站| 久久伊伊香蕉| 亚洲欧洲中文日韩久久av乱码| 精品人妻大屁股白浆无码| 中文字幕在线直播| 欧美精品色一区二区三区| 免费啪视频在线观看| 天天躁日日躁狠狠躁欧美| 色系列之999| 日韩精品――中文字幕| 日韩电影在线免费观看| 91久久极品少妇xxxxⅹ软件| 欧美捆绑视频| 一区二区三区在线免费视频 | 成人婷婷网色偷偷亚洲男人的天堂| 菠萝蜜影院一区二区免费| 国产在线观看免费av| 日韩电影免费在线| 成人做爰66片免费看网站| 猫咪在线永久网站| 亚洲愉拍自拍另类高清精品| 亚洲少妇第一页| 亚洲成av人片在线观看www| 亚洲精品一区av在线播放| 欧美日韩人妻精品一区二区三区| 久久亚洲美女| 国产偷久久久精品专区| 巨大荫蒂视频欧美另类大| 欧美色视频日本高清在线观看| 91精品视频国产| 激情综合网站| 91av在线免费观看| 亚洲国产精品视频在线| 国产精品福利一区二区三区| 国产午夜福利100集发布| 国产一区二区| 日韩在线欧美在线| 一级黄色在线视频| 99久久精品免费看国产免费软件| 中文字幕一区二区三区最新 | 在线看不卡av| 欧亚乱熟女一区二区在线| 亚洲精品2区| 国产欧美va欧美va香蕉在| 蜜桃免费在线| 欧美性猛交xxxx偷拍洗澡| 色综合久久久无码中文字幕波多| 久久福利综合| 国产精品久久一区主播| 久久米奇亚洲| 日韩欧美aaa| 一级特级黄色片| 亚洲国产专区校园欧美| 99热在线国产| 污污在线观看| 日韩欧美亚洲一区二区| 2025国产精品自拍| 久88久久88久久久| 一区二区三区国产福利| 成人综合网站| 在线视频日韩精品| 中文字幕免费在线看| 国产调教视频一区| 97公开免费视频| 激情五月综合| 国产日韩欧美在线| 麻豆tv入口在线看| 91精品国产综合久久久久久| 日本激情视频一区二区三区| 麻豆精品一区二区综合av| 亚洲欧美一区二区原创| 四虎国产精品免费久久| 久久精品夜夜夜夜夜久久| 国产绿帽一区二区三区| 亚洲免费观看在线视频| 成人在线观看一区二区| 欧美日韩国产欧| 精品999在线观看| 香蕉久久免费电影| 色老头一区二区三区| 99久久精品国产成人一区二区| 一区二区三区在线免费播放| 国产免费一区二区三区最新6| 136国产福利精品导航网址| 久久一区免费| 男女啪啪999亚洲精品| 久久久999精品视频| 成人黄色在线观看视频| 亚洲va欧美va天堂v国产综合| 无码人妻aⅴ一区二区三区| 日韩av不卡在线观看| 在线观看福利一区| aiai久久| 国产精品v日韩精品| 国产精品刘玥久久一区| 精品国产百合女同互慰| 国产黄色免费视频| 亚洲人一二三区| 日本黄色动态图| 日韩黄色片在线观看| 国产a级黄色大片| 亚洲妇女av| 91免费国产网站| 女海盗2成人h版中文字幕| 色久欧美在线视频观看| 欧日韩在线视频| 在线视频综合导航| 欧美色图亚洲视频| 国产天堂亚洲国产碰碰| 真实乱偷全部视频| 久久人人精品| 国内自拍中文字幕| 国产一区二区观看| 懂色av一区二区三区在线播放| 欧美极品影院| 欧美—级a级欧美特级ar全黄| 黄色av网站在线| 欧美成人一区二区三区片免费| 色屁屁影院www国产高清麻豆| 亚洲视频中文字幕| 五月天综合视频| 懂色av噜噜一区二区三区av| 午夜激情福利在线| 亚洲日本黄色| 欧美精品一区二区性色a+v| 亚洲国产合集| 精品国产乱码久久久久久郑州公司 | 亚洲国产精品一| 欧美精品一二三四| 日韩在线视频不卡| 亚洲成av人影院| 欧美色图亚洲视频| 中文字幕一区二区三区色视频| 亚洲av无码成人精品国产| 国产成人精品影视| 在线能看的av网站| 日韩国产成人精品| 日韩欧美精品在线观看视频| 欧美视频导航| 丰满人妻一区二区三区53号| 91影院成人| 日韩视频在线播放| 欧美极品中文字幕| 美乳视频一区二区| 窝窝社区一区二区| 国产一区在线免费观看| 日韩成人久久| 亚洲自拍欧美色图| 国产电影一区二区| 成人黄色网免费| 日韩国产大片| 国产日韩精品在线播放| 国产伊人久久| 国产区亚洲区欧美区| 99久久er| 国产精品爱啪在线线免费观看| 美女露胸视频在线观看| 97在线视频一区| 极品av在线| 97碰碰碰免费色视频| 蜜臀久久精品| 欧美孕妇孕交黑巨大网站| 午夜久久中文| 亚洲色图图片| 日韩av色综合| 性高爱久久久久久久久| 日韩美女视频免费看| 国偷自产一区二区免费视频| 欧美一级片在线播放| 自拍视频在线看| 国产成人久久久| 久久久加勒比| 亚洲va欧美va国产综合剧情| 亚洲国产aⅴ精品一区二区| av在线亚洲男人的天堂| 国产成人av毛片| 美女视频久久| 不卡视频在线| 2021狠狠干| 亚洲东热激情| 国产一级不卡毛片| 激情综合色综合久久| 久久久久亚洲av片无码v| 成人av网址在线观看| 色天使在线视频| 国产女同性恋一区二区| 天堂а√在线中文在线鲁大师| 综合久久给合久久狠狠狠97色| 911亚洲精选| 91麻豆免费观看| 一级片久久久久| 亚洲精品第一国产综合野| 激情五月色婷婷| 在线视频综合导航| 国产成人av免费看| 日韩成人中文电影| 亚洲图片88| 欧美高清性猛交| 日本美女一区| 亚洲字幕在线观看| 偷拍视屏一区| 99精品视频网站| 亚洲精品社区| 激情视频免费网站| 成人av在线电影| 日本裸体美女视频| 精品久久久久久久久久国产| 一级特黄免费视频| 精品欧美乱码久久久久久1区2区| 欧美91精品久久久久国产性生爱| 日韩一区二区三区国产| 国产美女高潮在线观看| 国产成人精品电影久久久| 免费欧美网站| 日本一区免费| 亚洲一级黄色| 伊人成人免费视频| 亚洲国产精品国自产拍av| 1级黄色大片儿| 91麻豆精品国产自产在线观看一区 | 国产精一区二区三区| 蜜桃av免费看| 亚洲国产美国国产综合一区二区| 亚洲高清在线看| 日韩av网址在线观看| 最新国产露脸在线观看| 国产剧情久久久久久| 一区三区在线欧| aa视频在线播放| 国产精品亚洲视频| 中文字幕资源站| 在线精品视频免费观看| 日韩a级作爱片一二三区免费观看| 欧美成人一二三| 久久精品国产精品亚洲毛片| 免费精品视频一区二区三区| 亚洲无吗在线| 欧美一级大片免费看| 中文字幕在线视频一区| 亚洲婷婷久久综合| 亚洲欧美中文字幕| 国产在线观看www| www.一区二区三区| 欧美永久精品| 亚洲欧美日韩中文字幕在线观看| 国产精品日日摸夜夜摸av| 中文字幕高清在线免费播放| 亚洲国产精品人人爽夜夜爽| 中日韩高清电影网| 成人网在线观看| 91麻豆国产自产在线观看亚洲| 北条麻妃在线视频| 国产校园另类小说区| 黄色片网站在线免费观看| 亚洲精品美女久久久久| 91破解版在线观看| 国产精品10p综合二区| 欧美特黄一级| 91精品啪在线观看国产| 午夜精品久久久久久久久| 欧美一级视频免费| 97久久精品国产| 日本中文字幕在线一区| 国产h视频在线播放| 91视视频在线观看入口直接观看www | 日韩高清中文字幕| 亚洲天堂电影| 日韩电影免费观看高清完整| 日韩一区欧美二区| 欧美色图17p| 欧美一区二区三区在线电影 | 欧美一区二粉嫩精品国产一线天| 日本国产精品| 无码人妻精品一区二区三区66| 欧美国产日韩a欧美在线观看| 中文字幕二区三区| 久久高清视频免费| 高清一区二区三区| 凹凸国产熟女精品视频| 国产日产精品1区| 中文字幕永久在线观看| 欧美成人免费全部观看天天性色| 一区二区三区在线免费看| 3d动漫一区二区三区| 国产网站一区二区三区| 国产色片在线观看| 97久久精品人人澡人人爽缅北| 国产不卡一区| 天天操精品视频| 亚洲va在线va天堂| yw在线观看| 成人欧美一区二区三区在线观看| 一本色道88久久加勒比精品| a天堂中文字幕| 欧美一区永久视频免费观看| 国产在线精彩视频| 亚洲日本精品一区| 福利电影一区二区| 亚洲大尺度在线观看| 久久久99久久精品女同性| 牛牛影视久久网| 中文字幕免费高清在线| 亚洲成人黄色影院| av每日在线更新| 国产伦精品一区二区三区四区免费| 性色一区二区三区| www.5588.com毛片| 日韩久久免费电影| 国产乱码精品一区二区三区亚洲人| 9久久9毛片又大又硬又粗| 国产精品久久久久影院| 头脑特工队2免费完整版在线观看| 国产精品自产拍在线观| 在线一区视频| 欧美日韩三级在线观看| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 |