亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

Data URI和MHTML完整解決所有瀏覽器

2024-08-26 00:09:37
字體:
來源:轉載
供稿:網友

data uri

data uri 是由 rfc 2397 定義的一種把小文件直接嵌入文檔的方案。通過如下語法就可以把小文件變成指定編碼直接嵌入到頁面中:

data:[<mime-type>][;base64],<data>

  1. mime-type:指定嵌入數據的 mime。其形式是[type]/[subtype]; parameter,比如png圖片對應的mime是image/png。parameter可以用來指定附加的信息,更多情況下是用于指定text/plain和text/htm等的文字編碼方式的charset參數。默認是text/plain;charset=us-ascii。
  2. base64:聲明后面的數據的編碼是base64的,否則數據必須要用百分號編碼(即對內容進行urlencode)。

在上個世紀 html4.01引入了data uri方案 ,到今天為止除了ie6和ie7之外,所有主流瀏覽器都支持,但ie8對data uri的支持還是有限制的,只支持object(僅是圖片時)、img、input type=image、link和css中的url,且數據量不能大于32k。

優點:

  1. 減少http請求數,沒有了tcp連接消耗和同一域名下瀏覽器的并發數限制。
  2. 對于小文件會降低帶寬。雖然編碼后數據量會增加,但是卻減少了http頭,當http頭的數據量大于文件編碼的增量,那么就會降低帶寬。
  3. 對于https站點,https和http混用會有安全提示,而https相對于http來講開銷要大更多,所以data uri在這方面的優勢更明顯。
  4. 可以把整個多媒體頁面保存為一個文件。

缺點

  1. 無法被重復利用,同一個文檔應用多次同一個內容,則需要重復多次,數據量大量增加,增加了下載時間。
  2. 無法被獨自緩存,所以其包含文檔重新加載時,它也要重新加載。
  3. 客戶端需要重新解碼和顯示,增加了點消耗。
  4. 不支持數據壓縮,base64編碼會增加1/3大小,而urlencode后數據量會增加更多。
  5. 不利于安全軟件的過濾,同時也存在一定的安全隱患。

mhtml

mhtml是mime html (multipurpose internet mail extension html)的縮寫,是由rfc 2557定義的把一個多媒體的頁面所有內容都保存到同一個文檔解決方案。這個方案是由微軟提出從ie5.0開始支持,另外opera9.0也開始支持,safari可以把文件保存為.mht(mhtml文件的后綴)格式,但不支持顯示它。

mhtml和data uri還比較類似,有更強大的功能和更復雜的語法,并且沒有data uri中“無法被重復利用”的缺點,但mhtml使用起來不夠靈活方便,比如對資源引用的url在mht文件中可以是相對地址,否則必須是絕對地址。hedger在《cross browser base64 encoded images embedded in html》針對ie的解決方案使用的是相對路徑就是因為聲明了content-type:message/rfc822使ie按照mhtml來解析,如果不修改content-type則需要使用mhtml協議,這個時候必須使用絕對路徑,如《mhtml – when you need data: uris in ie7 and under》。

應用

data uri和mhtml兩者的配合可以完整的解決所有的主流瀏覽器,它們由于無法被緩存和重復利用的缺陷,所以并不適合直接在頁面中使用,但在css和javascript文件中對圖片適當地使用有非常大的優越性:

  1. 大大減少請求數,現在大型網站的css引用了大量的圖片資源。
  2. css和javascript都可以被緩存,間接的實現了數據的緩存。
  3. 利用css可以解決data uri的重復利用問題
  4. 告別css sprites,css sprites的出現是為了減少請求數,但它除了帶來在不確定情況下的異常外,css sprites還需要人為的圖片合并,即使有合并工具也依舊必須人為地在如何有效的拼圖上耗費大量的時間,并帶來維護的困難。當你遵循一定的設計原則后,你就可以完全拋棄css sprites來編寫css,最后使用工具在上傳到服務器環節把圖片轉換成data uri和mhtml,如《利用data-uri合并樣式表和圖片》中用python實現的工具,這可以節約大量的時間。
  5. base64編碼把圖片文件增加了1/3,data uri和mhtml同時使用相當于增加了2/3,但css和javascript可以使用gzip壓縮,其可以節省2/3的數據量,所以使用gzip壓縮后的最終數據量是(1 + 1/3) * 2 * (1/3) = 8/9,所以最終流量是減少的。

為了方便在css中實現data uri和mhtml,我寫了一個data uri & mhtml 生成器,你可以看利用其生成data uri & mhtml應用實例。

在css文件中使用應用mhtml時url必須使用絕對路徑,導致非常不靈活,所以可以考慮使用css expression來解決(demo),比如:

   /*
   http://old9.blogsome.com/2008/10/26/css-expression-reloaded/
   http://dancewithnet.com/2009/07/27/get-right-url-from-html/
   */
  *background-image:expression(function(ele){
    ele.style.backgroundimage = 'url(mhtml:' +
         document.getelementbyid('data-uri-css').getattribute('href',4) +
         '!03114501408821761.gif)';
   }(this));

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久av| 欧美日韩精品在线播放| 亚洲人成在线观看网站高清| 亚洲精品国产综合区久久久久久久| 欧美日韩福利电影| 1769国内精品视频在线播放| 国产精品色婷婷视频| 欧美激情国产精品| 91精品久久久久久久久久久久久久| 日韩中文在线中文网三级| 久久躁狠狠躁夜夜爽| 日韩国产中文字幕| 色综合久综合久久综合久鬼88| 国产成人在线播放| 狠狠久久五月精品中文字幕| 国产精品美女主播在线观看纯欲| 久久精品中文字幕一区| 国产精品久久久久久久久免费看| 精品国内产的精品视频在线观看| 青草热久免费精品视频| 亚洲美女av网站| 国产成人小视频在线观看| 久久精品一区中文字幕| 日韩电影在线观看免费| 国产91在线播放精品91| 国产91ⅴ在线精品免费观看| 亚洲欧洲视频在线| 57pao成人国产永久免费| 亚洲综合大片69999| 国产精品成人一区二区三区吃奶| 精品视频在线播放色网色视频| 亚洲女人天堂视频| 久久久精品一区二区三区| 66m—66摸成人免费视频| 国产va免费精品高清在线观看| 日韩三级影视基地| 日韩免费电影在线观看| 久久天堂电影网| 欧美一区二区大胆人体摄影专业网站| 日韩av片永久免费网站| 91高清视频免费| 成人av色在线观看| 最近的2019中文字幕免费一页| 亚洲日本成人网| 日韩中文字幕在线视频| 国产成人精品在线观看| 国产aⅴ夜夜欢一区二区三区| 欧美在线视频观看免费网站| 精品爽片免费看久久| 精品视频久久久| 欧美日韩国产成人在线| 91高清免费在线观看| 日韩一区二区三区xxxx| 日本中文字幕久久看| 欧美日韩国产999| 久久久影视精品| 国产成人精品视频在线| 欧美中文在线免费| 亚洲精品456在线播放狼人| 欧美一级黄色网| 大胆欧美人体视频| 欧美成人精品在线观看| 亚洲三级 欧美三级| 美女啪啪无遮挡免费久久网站| 亚洲精品wwww| 国产精品青草久久久久福利99| 日韩在线视频免费观看| www欧美日韩| 久久青草精品视频免费观看| 欧美午夜www高清视频| 亚洲性日韩精品一区二区| 国产精品一二三在线| 午夜精品久久久久久久男人的天堂| 欧美日韩高清在线观看| 91tv亚洲精品香蕉国产一区7ujn| 亚洲欧洲黄色网| 日韩有码在线电影| 欧美电影在线观看| 91精品久久久久久综合乱菊| 日日噜噜噜夜夜爽亚洲精品| 国产91精品网站| 欧美成人精品不卡视频在线观看| 日韩国产在线看| 国产精品偷伦一区二区| www高清在线视频日韩欧美| 欧美猛少妇色xxxxx| 欧美一区二区三区免费观看| 在线丨暗呦小u女国产精品| 欧美性xxxx极品高清hd直播| 精品久久久香蕉免费精品视频| 久久成人综合视频| 日韩天堂在线视频| 国产专区欧美专区| 午夜精品久久久久久久久久久久久| 久久免费高清视频| 亚洲国产精品久久久久秋霞不卡| 亚洲人成在线观| 亚洲精美色品网站| 精品精品国产国产自在线| 国产一区二区三区直播精品电影| 富二代精品短视频| 久久99青青精品免费观看| 亚洲国产美女久久久久| 一区二区三区美女xx视频| 欧美自拍视频在线| 久久噜噜噜精品国产亚洲综合| 中文字幕av一区二区| 欧美成年人网站| 国产精品视频一区国模私拍| 欧美韩国理论所午夜片917电影| 欧美电影免费观看高清完整| 欧美激情一区二区三区高清视频| 亚洲欧洲一区二区三区在线观看| 一区二区三区视频免费在线观看| 国产在线不卡精品| 亚洲男女自偷自拍图片另类| 欧美福利在线观看| 成人免费在线网址| 久久久久久69| 久久亚洲国产成人| 国产精品色婷婷视频| 国产区精品视频| 日本免费一区二区三区视频观看| 国产大片精品免费永久看nba| 久久久久久久久久久国产| 国产成人精品最新| 免费97视频在线精品国自产拍| 91精品综合久久久久久五月天| 色综合五月天导航| 欧美中文在线免费| 精品在线小视频| 91精品国产免费久久久久久| 欧美久久久精品| 久久精品久久久久久国产 免费| 欧美日韩另类字幕中文| 久久精品视频在线观看| 日韩中文字幕网址| 成人精品一区二区三区| 欧美一级视频免费在线观看| 清纯唯美亚洲激情| 国产一区二区三区视频在线观看| 国产精品久久久久久av福利软件| 国产精品va在线播放我和闺蜜| 中日韩美女免费视频网址在线观看| 国语自产精品视频在线看抢先版图片| 日韩黄在线观看| 欧美性猛交xxxx免费看久久久| 国产精品成人播放| 91久久精品日日躁夜夜躁国产| 日韩免费av片在线观看| 欧美极品在线播放| 成人国内精品久久久久一区| 久久97精品久久久久久久不卡| 欧美性高跟鞋xxxxhd| 欧美激情中文字幕乱码免费| 久久久久这里只有精品| 91亚洲精品视频| 日韩成人激情视频| 久久精品成人欧美大片古装| 亚洲欧美中文字幕在线一区| 久久久久久成人精品| 亚洲爱爱爱爱爱| 麻豆国产va免费精品高清在线| 亚洲精品国偷自产在线99热|