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

午夜精品中文字幕| 鬼打鬼之黄金道士1992林正英| 亚洲国产无码精品| 欧美va在线观看| 亚洲色图一区二区| 国产精品一区二区三区在线观| 久久青青草视频| 日韩国产一区| 69堂精品视频| 玩弄中年熟妇正在播放| 国产高清免费在线播放| 久久精品国产999大香线蕉| 欧美男插女视频| 亚洲永久精品ww.7491进入| 欧美日韩免费电影| 亚洲成人tv网| 香蕉久久夜色| 天天摸天天碰天天爽天天弄| 老司机午夜精品视频| 在线亚洲一区| 在线视频免费一区二区| 国产精品成人免费一区久久羞羞| 极品在线视频| 亚洲视频小说图片| 欧美激情专区| 内射后入在线观看一区| 久久成人久久鬼色| 91精品黄色片免费大全| 每日在线更新av| av免费看在线| 中文字幕第一区二区| 久久久福利视频| 国产老妇伦国产熟女老妇视频| 99热这里只有精品8| 成人97在线观看视频| 五月天精品在线| 最新国产一区| 亚洲精品久久久久国产| 人妻精品久久久久中文字幕69| av成人在线播放| 色婷婷一区二区| 久久超碰亚洲| 亚洲美女福利视频| 国产乱子伦一区二区三区国色天香| 国产成人精品视频| 午夜影院免费在线观看| 一本综合久久| 9.1国产丝袜在线观看| 国产乱子伦精品视频| 美女av在线播放| 中文字幕一区二区三区四区不卡| 日产国产精品精品a∨| 亚洲三区在线播放| 99国产精品久久久久久久久久| 91在线看网站| 亚洲精品视频专区| 成人午夜电影网站| 国产精品美女诱惑| 国产成人精品一区| 亚洲精品成人无码毛片| 国产精品一区二区美女视频免费看| 亚洲三级欧美| 国产啊啊啊视频在线观看| 国产欧美精品一区二区三区四区 | 中文字幕永久在线| 天堂一区二区在线| 国产精品一二区| 成人午夜视频精品一区| 国产一区二区三区四区五区| 亚洲性无码av在线| 能直接看的av| 欧美在线高清| 亚洲第一黄网| 欧美噜噜久久久xxx| www.18av.com| 亚洲天堂免费电影| 亚洲品质自拍视频| 亚洲精品一区二区三区樱花| 最近中文字幕在线视频| 日韩天堂av| 国产精品成av人在线视午夜片| 麻豆亚洲av熟女国产一区二| 99精品视频在线| 久久韩剧网电视剧| 毛片a片免费观看| 在线国产精品一区| 欧美理论片在线观看| 青娱乐国产精品| 韩国在线视频一区| 98精品国产自产在线观看| 久久丫精品久久丫| 亚洲国产婷婷| 欧美在线视频观看| 国产亚洲精品美女久久久| 成人免费在线网| 性欧美1819sex性高清| 久久成人av少妇免费| 成人激情视频小说免费下载| 黄色aaa毛片| 久久久精品国产免大香伊| 在线观看成人免费| 免费高潮视频95在线观看网站| 在线观看国产91| 午夜影院免费观看视频| 黑人久久a级毛片免费观看| 亚洲男人天堂古典| 综合五月激情网| 欧美日韩ab| 亚洲精品wwww| 成人性生交大片免费看无遮挡aⅴ| 婷婷成人基地| 国产成人久久久精品一区| 性一交一黄一片| 国产精品日韩精品中文字幕| 亚洲精品日韩丝袜精品| 国产精品国产精品88| 欧美 日韩 国产 一区| 国内成人精品视频| 国产日本精品视频| 国产成人毛毛毛片| 97在线精品| 亚洲色图欧洲色图婷婷| 久久精品xxx| 中文在线字幕免费观看| 国产精品久久久久一区二区三区 | 在线heyzo| 欧美午夜无遮挡| av在线网址导航| 美女毛片一区二区三区四区| 精品综合久久久久久97| 一级特黄aaaaaa大片| 97aⅴ精品视频一二三区| 蜜桃av噜噜一区二区三| 国产在线视频网址| 自拍偷拍国产亚洲| 日本爱爱免费视频| 日韩免费小视频| 日韩欧美国产电影| 精品国产欧美日韩不卡在线观看| 日韩电影在线看| 欧美精品一区在线| 久久电影tv| 亚洲欧美中文日韩在线v日本| 日韩精品一区二区av| 国产精品99久久久| 正在播放一区二区三区| 人人精品久久| 日韩中文综合网| 91国内精品久久久| 久久久久综合网| 成人在线激情网| 美女久久久久| 国产精品欧美激情在线播放| 99中文字幕一区| 欧美日韩午夜在线| 国产精品手机在线观看| 国产精品视频久久一区| 成人av资源网| 国产羞羞视频在线播放| 亚洲经典中文字幕| www.com国产| 天堂va蜜桃一区二区三区漫画版| 黄色91av| 性欧美18一19sex性欧美| 中文字幕精品在线| 国产乱码久久久| 亚洲在线成人精品| 在线免费播放av| 久久激情久久| 国产又爽又黄ai换脸| 日韩中文字幕一区二区高清99| 欧美激情一区二区三级高清视频| 手机在线观看毛片| 欧洲精品在线观看| www欧美com| av午夜一区麻豆| 手机看片福利日韩| 自拍日韩欧美| 久久精品国产美女| 日本免费一区二区三区等视频| 美女视频久久黄| 亚洲欧洲成人在线| 欧美色手机在线观看| 成人免费毛片东京热| a美女胸又www黄视频久久| av五月天在线| 欧美+日本+国产+在线a∨观看| 国产亚洲情侣一区二区无| 欧美日韩美女| 九色精品免费永久在线| 日本天堂在线| 欧美一区二区视频在线观看2022| 日韩av在线播放观看| 国产女人18毛片水真多成人如厕 | 中文字幕第一区综合| 亚洲少妇一区二区| 日韩 欧美一区二区三区| 中文字幕在线中文| 国产欧美一区二区精品久久久| 国产一区深夜福利| 小视频免费在线观看| 久久久国产视频91| 毛片免费在线观看| 日韩精品一区二区三区在线播放| 丰满少妇xoxoxo视频| 亚洲激情一二三区| 日韩欧美黄色网址| av电影在线观看一区| 欧美在线a视频| 日韩二区三区四区| 国产免费黄视频| 伊人情人综合网| 色噜噜一区二区| 日本午夜精品久久久| 波多野结衣一区二区三区在线观看| 吉吉日韩欧美| 91精品国产精品| 中文国产字幕在线观看| 在线播放日韩专区| 亚洲aaa在线观看| 日韩免费视频一区二区| 91精品中文字幕| 欧美伊人久久久久久久久影院| 国产精品7777777| 一区二区三区在线免费| 午夜三级在线观看| 国产精品天美传媒| 国产精品20p| 91麻豆高清视频| 艳妇乳肉豪妇荡乳xxx| 国产一区久久久| 奇米视频7777| 久久国产精品99久久人人澡| 可以免费在线看黄的网站| 一本色道久久综合| 国产极品在线视频| 亚洲黄色免费| 日本午夜激情视频| 亚洲香蕉网站| 男女裸体影院高潮| 你懂的一区二区| 日本成人在线不卡| 欧美日韩久久| 成人国产一区二区三区| 欧美日韩国产欧| www.国产在线视频| 一区三区视频| 日韩免费一级视频| 午夜在线a亚洲v天堂网2018| 黄色www网站| 久久综合婷婷| 精品久久久久久中文字幕2017| 日本不卡一区二区三区| 91日韩视频在线观看| 精品一区二区在线播放| 国产又粗又长又爽又黄的视频| 韩国视频一区二区| 永久免费看片在线观看| 丁香啪啪综合成人亚洲小说| 欧美xxxxx少妇| 91女人视频在线观看| 国产精品无码一区二区三区| 国产午夜精品一区二区三区嫩草 | 欧美一区二区三区另类| 特大黑人娇小亚洲女mp4| 韩日视频一区| 欧美日韩二三区| 日本中文一区二区三区| 成人性生交免费看| 国产盗摄视频一区二区三区| 成年人小视频在线观看| 久久影院午夜片一区| 欧美三级视频网站| 亚洲男人电影天堂| 日本一级淫片色费放| 色综合网站在线| 夜夜躁狠狠躁日日躁av| 日韩一区二区三区在线| 人妻与黑人一区二区三区| 亚洲男人天堂2019| 国产在线观看av| 97欧美精品一区二区三区| 国产综合av| 亚洲自拍偷拍视频| 日韩深夜影院| 亚洲第一页在线视频| 伊人久久婷婷| 国产 porn| 成人一区二区三区| 亚洲综合欧美综合| 一级中文字幕一区二区| 久久精品五月天| 日韩欧美国产一二三区| 噜噜噜噜噜在线视频| 欧美成人黑人xx视频免费观看| 涩涩涩视频在线观看| 成人亚洲欧美一区二区三区| 欧美电影免费网站| 成年人免费观看的视频| 亚洲乱码久久| 日本高清免费在线视频| 久久品道一品道久久精品| 美女的奶胸大爽爽大片| 欧美在线看片a免费观看| 国产成人手机在线| 最近2019年日本中文免费字幕 | 亚洲色偷偷色噜噜狠狠99网| 亚洲国产精品ⅴa在线观看| 日本在线小视频| 欧美美女喷水视频| 可以在线观看的av| 国模精品视频一区二区三区| 91精品福利观看| 日韩av大全| 亚洲一区二区伦理| 欧美日韩一区二区三区四区五区六区| 中文字幕av一区二区三区免费看| 国产一级做a爱片久久毛片a| 日韩一级欧美一级| 日韩黄色影院| 国产精品黄页免费高清在线观看| 卡一精品卡二卡三网站乱码 | 久久蜜桃精品| 91九色蝌蚪porny| 亚洲精品成人在线| 国产美女自慰在线观看| 深夜福利国产精品| 日韩美女在线看免费观看| 国产乱码一区| 欧美va天堂在线| 涩涩网站在线看| 国产欧美日韩在线观看| 麻豆成人免费视频| 国产婷婷成人久久av免费高清| av福利导福航大全在线| av一本久道久久波多野结衣| 91成人精品| 日韩欧美理论片| 亚洲人午夜精品天堂一二香蕉| 亚洲一二区视频| www.亚洲一区| 麻豆久久久久| 一本一道久久a久久精品综合| 老司机亚洲精品| 亚洲精品视频网址| 欧美性猛片aaaaaaa做受| 国产午夜在线观看| 国产精品伦子伦免费视频| 欧美伦理影院| 天天干天天玩天天操| 国产精品国模大尺度视频| 中文字字幕在线观看| 色噜噜国产精品视频一区二区| 成人免费黄色| 波多野结衣三级在线| 国产精品自在在线| 精品爆乳一区二区三区无码av| 日韩欧美一区在线| 黄色成人在线网| 久久99欧美| 日韩中文字幕不卡| 91无套直看片红桃在线观看| 欧美日韩一级片在线观看| 久久久久久国产精品免费无遮挡| 91手机视频在线观看| 国产精品porn| 国产熟女高潮一区二区三区| 一道本成人在线| 男人在线资源站| 成人黄视频免费| 久久福利毛片| 国产黄a三级三级| 日韩一级黄色大片| a在线视频v视频| 视频一区不卡| 国产精品123区| 波多野结衣视频网站| 中文字幕亚洲无线码a| 色综合久久久| 高清欧美精品xxxxx| 国产三级精品在线| www.麻豆av| 国产成人午夜视频网址| 亚洲精品一区二区妖精| 国产精品久久久久久亚洲色| 欧美专区亚洲专区| 欧美巨大xxxx做受沙滩| 欧美专区一二三 | 国产污在线观看| 欧美综合一区二区| 欧美大胆的人体xxxx| 日本成人黄色免费看| 国产经典欧美精品| 欧美精品韩国精品| 欧美大胆在线视频| 久久99影视| 日本一区二区免费视频| 欧美视频一区在线| аⅴ资源天堂资源库在线| 伊人久久av导航|