The Synchronous FileSystem API for Workers-工作者的同步文件系统应用程序接口

来源:互联网 发布:淘宝退款不退货违法 编辑:程序博客网 时间:2024/04/28 07:15

The Synchronous FileSystem API for Workers

简介:

  The HTML5 FileSystem API and Web Workers 在各自的领域都是非常强大的。The FileSystem API终于为网络程序带来分层存储和文件I/O,workers为javascript带来真正的异步“多线程”。然而,当你使用这些API的同时,你可以做一些真正有趣的应用程序。
    
       本教程利用在工作者中的HTML5 文件系统提供指导和代码示例,假定这两个API都是正常运行的。如果你还没准备好学习或者对学习更多的API不感兴趣。阅读这两个讨论的教程: Exploring the FileSystem APIs and Basics of Web Workers.

同步与异步的API:

       使用异步的API是艰难的,因为它们确实很盘大,很复杂。但其实最令人沮丧的是,它们提供的东西在很多情况下会报错。过去你要处理的是在一个已经同步的世界里面的一个复杂的异步API。现在有个好消息,文件系统API定义一个同步的版本,以缓解在web worker身上的负担。
       大部分情况下,同步的API就跟异步API是表兄弟一样。方法、属性、功能和函数将是很令人熟悉的。主要不同的是:
  • 同步API只能用于一个worker,而异步API可以用于多个worker。
  • 回调函数在外部:API方法现在返回一个值。
  • 在window对象里面的方法(requestFileSystem() andresolveLocalFileSystemURL())变成requestFileSystemSync() andresolveLocalFileSystemSyncURL()。PS:这些方法是worker全局范围内的成员,不是全局对象。
       除了这些不同,API基本是相同的。好吧,让我们开始吧。

Requesting a filesystem——请求一个文件系统。

       一个应用程序通过一个web worker发送请求到LocalFileSystemSync对象来访问同步文件系统。The requestFileSystemSync()显示在worker的全局范围内。

var fs = requestFileSystemSync(TEMPORARY, 1024*1024 /*1MB*/);

  注意现在我们使用的同步API以及缺乏成功和错误回调,返回的新的值。

  与普通的文件系统API,方法为前缀的时候。
  
self.requestFileSystemSync = self.webkitRequestFileSystemSync ||                             self.requestFileSystemSync;



原文地址:http://www.html5rocks.com/en/tutorials/file/filesystem-sync/