JavaScript將增加本地操作API 可直接操作本地文件
Chrome、IE和Firefox都紛紛在新版中增強了JavaScript引擎的執(zhí)行效率,隨著JavaScript效率在各大瀏覽器的顯著提高,JavaScript可以做越來越多的事,本地文件API的引入將讓很多有趣的功能成為現(xiàn)實。
日前,Mozilla向W3C提交了一個草案,旨在推出一個JavaScript API,讓JavaScript 腳本直接操作本地文件,F(xiàn)irefox的***瀏覽器版本中已經(jīng)對該API提供了大量的支持,不過出于安全考慮,該API將只對本地文件提供有限的訪問。
#T#該API引入了一個FileReader 對象,可以異步加載本地文件系統(tǒng)中的文件,并允許開發(fā)者為諸如加載失敗,進度,加載完成等事件分配回調(diào)函數(shù),它提供的方法可以從本地文件中讀取文本或二進制數(shù)據(jù),并通過一個 abort 方法隨時打斷操作。
FileReader對象使客戶端的文件訪問成為現(xiàn)實,用戶不必再象以前那樣首先將文件上傳到服務(wù)器才能處理,事實上,IE 和 Firefox 已經(jīng)擁有一些非標(biāo)準(zhǔn)的方法訪問本地文件,但這些方法并非標(biāo)準(zhǔn) JavaScript 行為。
FileReader對象并不需要特別的權(quán)限,但出于顯然的安全考慮,直接使用文件路徑進行訪問是不允許的,必須結(jié)合常規(guī)的 HTML file 對象,用戶點擊瀏覽之后,選擇本地文件,JavaScript 再通過 DOM 引用該文件并進行操作,這個機制使得該 API 相對安全一些,因為任何本地文件的獲取都需要用戶的人工參與。
以下例子使用該 API 打開一個本地文件并將文件內(nèi)容顯示在一個 div 容器中,我們甚至可以在 div 上加上 contentEditable 屬性,用戶可以直接編輯文件的內(nèi)容,不過,該 API 并沒有提供將文件內(nèi)容寫回本地文件的方法,因此你編輯的內(nèi)容無法保存。
盡管在JavaScript中增加API并非多么重大的技術(shù)革命,但它將拓展 Web 應(yīng)用的視野,讓 Web 平臺實現(xiàn)越來越多的功能。