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

未來Web應用開發探秘:File API

原創
開發 前端 新聞
File API可以讓開發者在本地文件時獲得更大的自由,而不需要把一些過程傳送到服務器上進行復雜而低效的操作。今天我們就一起來探秘File API的使用。

【51CTO 8月9日外電頭條】我們不止一次的提到File API以及Web應用程序對本地資源的訪問,比如《JavaScript將增加本地操作API 可直接操作本地文件》和《HTML5 File API初探 支持文件拖放上傳功能》等。這不只是一個功能或者API,它還代表了未來Web應用開發的一個趨勢。

回想一下過去那些糟糕的日子:要上傳文件到一個網站需要在一個file input上點擊“瀏覽”按鈕,然后導航到這個文件所在的文件夾,再點擊“打開”,如果要上傳多個文件,需要對每一個文件重復上面的步驟!有了File API,那些日子將一去不復返了。

File API是什么?

File API是一套強大的API,它可以讓開發者處理來自于用戶文件系統的文件,并且可以讓開發者在Web應用程序里使用這些文件,所有這些事情都在本地處理,不需要在服務器上處理。

File API能做什么?

在很多場景下,許多應用程序中,File API都是很有用的。最明顯的用途就是使用Drag和Drop API在drop事件上訪問文件的,來支持拖放式上傳文件(比如image)。當用戶drop文件的時候,你可以把他們轉換成一個data URL,馬上給用戶提供反饋,同時可以用異步的方式把要上傳的image的縮略圖展示給用戶,這可以給用戶提供一個無縫的交互體驗。

幾個例子:

我們收集了一個炫耀File API的例子(http://www.thecssninja.com/demo/crystalball/),這個Demo可以在Firefox3.6和Chrome 6 dev版上正常運行。從你的桌面上拖放任意文件到這個Demo中,看看會發生什么......

◆一個圖片編輯器——http://demos.hacks.mozilla.org/openweb/imageUploader

◆box.net最近添加了對拖放式上傳文件的支持—— box.net

◆font dragr – 測試自定義字體的Web應用程序* – http://fontdragr.com

如何使用File API

使用File API,你有兩種方法可以訪問一個文件并進行操作。第一種方法是通過file input和文件屬性。

  1. document.getElementById("fileinput").files  
  2.  

上面的代碼訪問了FileList對象,它是一個包含多個文件的序列數組。每個文件都有幾個屬性可用,例如name, size和type

訪問一個文件的另一種方法是通過Drag和Drop API,在dataTransfer對象上,也包含一個FileList對象,dataTransfer對象在DnD API的drop事件上可用。

  1. event.dataTransfer.files  
  2.  

這兩種方法都返回同一個序列數組。拖放多個文件可以被處理,并且如果file input有multiple屬性,它也可以處理多個文件。

FileReader

為了用FileList對象來做一些事情,在無需服務器參與的情況下操作文件來顯示給用戶,我們可以使用FileReader對象。它是異步處理的,所以只要不鎖定瀏覽器的UI,它就一直在處理文件。

  1. var reader = new FileReader();  
  2.        
  3.     reader.onload = function (evt) {  
  4.         // do something with the file once it's loaded  
  5.         var data = evt.target.result, // file is stored in the result attribute;  
  6.               img = document.createElement("img");  
  7.        
  8.         img.src = data;  
  9.         document.getElementsByTagName("body").appendChild(img);  
  10.     }  
  11.     reader.readAsDataURL(file); 
 

上面的代碼我們創建了一個新的FileReader對象,然后我們初始化了我們的onload函數,所以只要文件載入了內存,我們就可以操作這個文件了。最后一個函數告訴reader,我們想用這個文件做什么。在我們的實例中,是返回一個DataURL。還有兩個其他的方法可以使用,它們是:

readAsText() 和readAsBinary()

在onload事件的內部,我們創建了一個新的image元素,設置它的source設置成result屬性的值,然后把它附加到document body上。這立刻會把這個image顯示給用戶。

處理大文件——File URL

在前面的例子里,我已經向你展示了如何載入一個文件,然后把它展示給用戶。所有這些方法本質上都是用readAsDataURL/Binary/Text等函數創建一個文件的拷貝,然后把它載入你的可用內存中。當用戶載入了許多文件,或非常大的文件的時候,就會產生問題。比如說,用戶要拖動一個200MB的視頻或者它們拖入了許多的視頻!這將會產生大量的數據,它們都需要載入內存,這會使任何機器突然停止響應,更可能的結果是使瀏覽器崩潰。值得慶幸的是File API的創建者和貢獻者已經想到了這個問題,并且在FileReader對象上添加了一個非常有用的屬性——url。

URL

URL是一個隨機產生的唯一字符串,它映射到你的硬盤上的一個物理文件。這是很有用的,因為這個唯一的字符串可以在html文檔中使用。例如有一個image。把這個image的source設置成File API生成的唯一字符串,不需要把它載入內存,就可以讓你把這個image顯示給用戶。

  1. <img src="moz-filedata:8616e48b-2a2b-418d-9ad4-5669858cf038" /> 
  2.  

上面的例子展示了在Firefox 4中使用的url屬性,image的source應該是什么樣子的。

想象一下這個場景。在你的圖片網站上,你有一個image uploader,用戶在他們的圖片里拖動了一些文件,要drop的那些圖片顯示成了一個漂亮的縮小版本的網格,但是用戶發現了一個問題,認識到那些image中,有一個需要修整一下。他們在一個圖片編輯器中打開這個文件,做了一些修整,回到Web應用程序并點擊上傳按鈕。使用url的好處是改變的文件也可以被上傳,因為它實時的鏈接到文件系統中的物理image,所以無須用戶重新把它們添加到上傳列表中。

到現在為止,Firefox 4是唯一一個支持url屬性的瀏覽器,即便如此,它還存在一個bug:唯一字符串只能顯示通過file input載入的image。無法顯示通過drop事件載入的image。但是,在Firefox 4的穩定版本中,這個bug應該已經被修復了。

看看這個Firefox 4中的Demo(http://www.thecssninja.com/demo/crystalball/fileurl.html),它使用一個file input載入文件,使用了url屬性。

  1. // Code showing url  
  2. var droppedFileURL = file.url;  
  3. ...  
  4. img.src = droppedFileURL; 

上面的代碼很簡單。并不需要附加一個事件來把image載入內存,然后把它轉換成一個data URL,我們只需要簡單的遍歷文件,訪問file對象的url屬性,然后用它設置我們的image的source。對于開發者來說,工作量減輕了,同時用戶計算機的壓力也減輕了。這是一個兩全其美的方法。

向何處前進

在寫這篇文章的時候,只有兩個瀏覽器支持File API:Firefox 3.6和Chrome 6,它們分別在不同程度上支持了File API規范。

File API只是許多正在使用的一線API中的一種。例如,FileWriter和Media Interface(Web攝像頭訪問)在一起使用將爆發出驚人的潛力。這只是未來的開始,離“在桌面的世界里讓Web應用程序成為一等公民”這個目標,我們又近了一步。這條線變得更加模糊了。

【編輯推薦】

  1. 使用HTML5構建下一代的Web Form
  2. Google網頁工具包(GWT)是Web開發的未來?
  3. Google力挺HTML 5 或成未來應用核心
  4. Web領域那些陰魂不散的技術與思想

 原文:The Future of Web Apps: A look at the File API    作者:Ryan Seddon

責任編輯:佚名 來源: 51CTO.com
相關推薦

2011-02-21 09:10:42

WebHTML 5JavaScript

2010-09-03 08:58:01

HTML 5

2019-04-04 09:08:41

2013-05-22 15:43:39

谷歌web組件web開發

2013-04-17 10:06:55

Google GlasMirror API

2010-08-27 10:41:41

iPhone核心應用程序

2013-11-28 09:43:46

JavaScriptWeb

2022-09-14 09:13:02

ASGIPythonWeb

2019-06-26 08:20:19

JavaScriptWeb開發

2023-07-04 07:31:12

JavaScriptWeb

2024-11-22 08:28:43

2010-06-13 09:22:37

jQuery

2009-08-25 15:30:55

DataGrid We

2011-07-19 09:58:36

2011-07-19 09:46:38

2011-09-08 17:48:33

Web Widget

2021-01-31 18:52:36

Rust開發Web API

2010-08-18 10:13:55

IntentAndroid

2010-03-15 10:09:24

Indexed DBWeb

2012-06-20 14:34:03

jQuery
點贊
收藏

51CTO技術棧公眾號

国产精品第6页| 中文 日韩 欧美| 国产美女性感在线观看懂色av | 亚洲女人被黑人巨大进入al| 五十路熟女丰满大屁股| 裸体xxxx视频在线| 久久99精品久久久久| 欧美精品video| 新91视频在线观看| 秋霞一区二区| 日本久久一区二区| 黄瓜视频免费观看在线观看www| 精品国产亚洲AV| 国产视频一区在线观看一区免费| 国产亚洲a∨片在线观看| 一级片黄色免费| 樱桃视频成人在线观看| 亚洲日本va午夜在线影院| 国产精品一区二区三区精品| 黄色av网站免费| 欧美日韩蜜桃| 原创国产精品91| 亚洲天堂2024| www一区二区三区| 欧美性猛交xxxx免费看| 国产香蕉一区二区三区| 韩国免费在线视频| 成人福利在线看| 成人精品一区二区三区| 99精品人妻国产毛片| 中文不卡在线| 日韩中文字幕在线| 国产女主播喷水高潮网红在线| 91麻豆精品| 欧美性色黄大片| a级黄色小视频| a免费在线观看| 国产欧美一区二区精品忘忧草| av资源站久久亚洲| 国产色片在线观看| 美女一区二区三区在线观看| 欧美亚洲另类制服自拍| 成人免费看片98| 91免费精品| 在线观看视频99| 爱爱的免费视频| 国产精品自在线拍| 日韩精品一区二区三区视频| 日韩精品视频一二三| 网友自拍亚洲| 一本高清dvd不卡在线观看| 欧美在线一区视频| 国产经典三级在线| 亚洲人亚洲人成电影网站色| 一级特黄录像免费播放全99| 成人在线免费观看| 久久精品男人天堂av| 久久久久久久久久久久久久久久av| 性做久久久久久久| 国产成人午夜精品5599| www.久久久| 好吊视频一区二区三区| 成人精品一区二区三区四区 | 久久九九全国免费| 免费不卡亚洲欧美| 国产小视频在线播放| 国产欧美综合在线| 亚洲欧美日韩精品在线| 三区四区电影在线观看| 日韩一区中文字幕| 热久久最新网址| 日本成人不卡| 亚洲超碰97人人做人人爱| www污在线观看| 国产传媒在线| 欧美日韩国产综合新一区 | 蜜臀av性久久久久av蜜臀妖精| 国产97在线|亚洲| 69av视频在线观看| 久久av中文字幕片| 亚洲最大福利网| 好吊色一区二区| 久久久99精品免费观看| 色综合666| 国产精品久久久久久福利| 亚洲手机成人高清视频| dy888午夜| 97超碰在线免费| 色菇凉天天综合网| 日韩av卡一卡二| av综合网页| 亚洲最新av在线| 成熟的女同志hd| 99热在线精品观看| 国产精品入口尤物| www男人的天堂| 26uuu亚洲| 亚洲人成网站在线观看播放| 伊人电影在线观看| 日韩欧美中文免费| 女王人厕视频2ⅴk| 四虎884aa成人精品最新| 中日韩美女免费视频网址在线观看| 老司机精品免费视频| 国内精品久久久久久久影视麻豆 | 日韩av电影网| 日韩av二区在线播放| 亚洲精品免费在线视频| 日本一二三区在线视频| 亚洲精品一卡二卡| 日日碰狠狠躁久久躁婷婷| 日日夜夜综合| 日韩精品视频免费专区在线播放| av在线免费播放网址| 狠狠88综合久久久久综合网| 国产成人短视频| 午夜精品无码一区二区三区| 国产亚洲1区2区3区| 国产 国语对白 露脸| 丝袜美腿诱惑一区二区三区| 日韩欧美电影一区| 成人免费视频入口| 亚洲欧美日韩国产一区二区| 亚洲伊人久久大香线蕉av| 久久这里精品| 午夜国产精品影院在线观看| 中文字幕资源在线观看| 久久成人高清| 97视频在线观看免费| 国产后入清纯学生妹| 日本一区二区三区在线观看| 久久黄色片视频| 97一区二区国产好的精华液| 久久精品国产清自在天天线| 在线免费观看av网址| 成人综合激情网| 日韩最新中文字幕| 九七影院97影院理论片久久 | 狠狠躁18三区二区一区| 中文字幕无人区二| 欧美+日本+国产+在线a∨观看| 国产999精品视频| 同心难改在线观看| 亚洲成人av在线电影| 女教师高潮黄又色视频| 一区二区蜜桃| 91视频免费网站| 日韩精品毛片| 欧美猛男超大videosgay| 加勒比综合在线| 噜噜噜躁狠狠躁狠狠精品视频 | 隣の若妻さん波多野结衣| 亚洲男人的天堂一区二区| 污污动漫在线观看| 欧美限制电影| 国产欧美一区二区三区视频 | 豆花视频一区二区| 久久久久久中文字幕| 亚洲精品国产一区二| 一区二区三区不卡在线观看| 91porn在线| 亚洲人人精品| 国严精品久久久久久亚洲影视| 97人人爽人人澡人人精品| 亚洲国产精品一区二区久| 国产精品自拍99| wwwwww.欧美系列| 日本黄色三级大片| 国产欧美日韩免费观看| 国产成人精品久久二区二区| 黄色片免费在线| 欧美三级日本三级少妇99| 婷婷激情四射网| 国产精品一区二区不卡| 精品国偷自产一区二区三区| 亚洲精品推荐| 国产精品极品在线| 超鹏97在线| 精品国产91洋老外米糕| 六月丁香婷婷综合| 国产精品美女久久久久高潮| 成人免费黄色av| 亚洲人体大胆视频| 天堂精品一区二区三区| 高清在线一区二区| 性色av一区二区三区免费| 日韩欧美在线番号| 欧美日韩精品福利| 久久久久久av无码免费网站| 99re66热这里只有精品3直播| 日韩有码免费视频| 久久久久久免费视频| 国产区欧美区日韩区| 欧美电影网址| 久久99精品久久久久久琪琪| 亚州av在线播放| 欧美久久久久久久久久| 国产精品23p| 中日韩免费视频中文字幕| 亚洲妇女无套内射精| 免费国产自线拍一欧美视频| 一区二区91美女张开腿让人桶| 综合激情网...| 国产成人鲁鲁免费视频a| av免费在线观| 亚洲色图17p| www.热久久| 在线免费av一区| 久久久久久久久久99| 国产亚洲一区二区三区四区 | 亚洲男人天堂网址| 一区二区三区在线视频免费 | 日产精品久久久一区二区福利| 黄色在线播放网站| 国产视频久久久| 亚洲精华国产精华精华液网站| 色婷婷av一区二区三区软件| 印度午夜性春猛xxx交| 久久嫩草精品久久久精品| 四虎1515hh.com| 日韩黄色小视频| 国产九九九九九| 99久久精品费精品国产| 欧美日韩电影一区二区| 亚洲午夜免费| 国产日本欧美一区二区三区在线| 天堂av在线网| 久久久久久美女| 69成人在线| 色播久久人人爽人人爽人人片视av| 少妇精品高潮欲妇又嫩中文字幕| 欧美一区二区在线播放| 中文字幕在线播放不卡| 色综合天天综合色综合av| 一级aaa毛片| 一区二区三区在线观看视频| 精品女人久久久| 国产女同性恋一区二区| 在线 丝袜 欧美 日韩 制服| 成人黄色在线看| 亚洲最大视频网| 国产成人aaaa| 在线成人精品视频| 国产高清无密码一区二区三区| 九九热精品国产| 免费xxxx性欧美18vr| 妺妺窝人体色www在线观看| 欧美资源在线| 无码人妻h动漫| 欧美专区18| 丁香婷婷激情网| 日韩国产欧美在线视频| 99热自拍偷拍| 性一交一乱一区二区洋洋av| 欧美一级欧美一级| 99香蕉国产精品偷在线观看| 老太脱裤让老头玩ⅹxxxx| 亚洲大胆av| 欧美精品久久久久久久自慰| 亚洲国产专区校园欧美| 亚洲人精品午夜射精日韩 | 99精品国产99久久久久久97| 6080午夜不卡| 国产不卡av在线播放| 精品少妇一区二区三区在线播放| 国产成人精品亚洲精品色欲| 日韩一区二区在线观看视频| 99久久精品日本一区二区免费| 91精品国产乱| 亚洲精品久久久久久无码色欲四季 | 一本大道久久加勒比香蕉| 国产原创av在线| 中文字幕亚洲第一| 国产高清一区二区三区视频| 欧美大成色www永久网站婷| 国产经典三级在线| 日本午夜在线亚洲.国产| 日本精品裸体写真集在线观看| 国产精品久久久久久久久男| 婷婷精品久久久久久久久久不卡| 亚洲free性xxxx护士hd| 激情小说亚洲色图| 日韩欧美亚洲v片| 一区二区三区在线| 成人在线观看你懂的| 免费高清不卡av| 中文字幕亚洲日本| 91免费观看在线| 精品熟妇无码av免费久久| 亚洲精品伦理在线| 欧美一级视频免费观看| 欧美三级午夜理伦三级中视频| 亚洲AV无码精品国产| 亚洲毛片在线观看.| 最新真实国产在线视频| 欧美激情2020午夜免费观看| 亚洲免费福利| 91亚洲永久免费精品| 日韩大胆成人| 99re99热| 鲁大师成人一区二区三区 | 四虎精品永久免费| 精品无人区一区二区三区竹菊| 日本一区二区高清不卡| 久久国产精品网| 久久电影国产免费久久电影| 娇妻高潮浓精白浆xxⅹ| 国产精品乱人伦| 久久国产精品系列| 91精品免费在线观看| 青青操视频在线| 美女999久久久精品视频| 日韩av中字| 高清视频在线观看一区| 日韩在线精品| 波多野结衣家庭教师在线播放| 久久er精品视频| 国产又粗又猛又爽又黄av | 色偷偷偷亚洲综合网另类| 自拍网站在线观看| 黄色小网站91| 亚洲国产高清视频| 无码人妻一区二区三区一| 中文字幕视频一区| 日本妇乱大交xxxxx| 亚洲欧美福利视频| 在线视频超级| 久久天天狠狠| 亚洲一区欧美二区| 久久人妻少妇嫩草av无码专区| 亚洲综合视频网| 精品人妻aV中文字幕乱码色欲| 日韩在线高清视频| 黄色成人小视频| 中文字幕在线亚洲精品| 麻豆精品一二三| 亚洲aaa视频| 欧美久久一二三四区| 青青青青在线| 成人国产精品一区二区| 99久久99久久精品国产片桃花| 五月婷婷丁香色| 国产精品不卡在线观看| 在线观看毛片视频| 视频在线观看一区二区| 亚洲综合伊人| 热久久最新地址| 成人永久免费视频| 日本一级淫片色费放| 亚洲精品资源美女情侣酒店| 在线观看网站免费入口在线观看国内| 国产日韩欧美综合精品| 99精品视频免费观看视频| 精品人妻一区二区三区视频| 一本一道久久a久久精品| 成人性爱视频在线观看| 国产在线98福利播放视频| 亚洲国产一区二区三区在线播放| 善良的小姨在线| 亚洲妇熟xx妇色黄| 天堂av电影在线观看| 日本精品免费一区二区三区| 久久中文字幕一区二区| 日本老太婆做爰视频| 国产精品白丝jk黑袜喷水| 精品无码人妻一区二区三区| 日韩视频免费观看高清完整版| 久草在线视频福利| 成人黄色片视频网站| 免费看的黄色欧美网站| 欧美 日韩 国产 成人 在线观看| 欧美日韩一区二区三区四区五区 | 精品网站在线| 中文字幕欧美日韩一区二区三区| 美女视频黄 久久| 欧美日韩免费做爰视频| 日韩三级免费观看| 热色播在线视频| 精品国产乱码久久久久软件| 日韩av电影天堂| 精品国产视频一区二区三区| 精品国产乱码久久久久久免费| 91福利区在线观看| 欧美凹凸一区二区三区视频| 每日更新成人在线视频| 亚洲天堂网av在线| 日韩情涩欧美日韩视频| 国内老司机av在线| 久久久免费看| 老司机午夜精品| 久久免费视频播放| 亚洲激情成人网| 亚洲成av在线| 无码人妻精品一区二区三区99v| 成人做爰69片免费看网站| 亚洲精品一区二区二区| 欧美乱妇高清无乱码| 欧美日韩123| 999热精品视频| 色综合久久久久综合|