我知道IDB和web worker是今年才实现的,但是读了mdn1之后,我发现这个连接在b2g (firefoxOS)中是可行的,因为它是第一个版本。
我在一个worker中使用idb做了一个应用程序,但在1.X版本的b2g中启动失败。我已经在self中寻找了一些moz- idb (ish)变量,但什么也没有找到(这个变量没有控制台或适当的调试器:( ),也在mdn中进行了深入的搜索,但在b2g的worker中仍然没有idb的示例或文档。
你能帮我举一个简单的例子或者indexeddb的变量名吗?
资料来源:1 http://i.stack.imgur.com/fAUyb.png
发布于 2015-12-01 03:12:33
在Firefox37中,IndexedDB被添加到工作进程中:
https://www.mozilla.org/en-US/firefox/37.0/releasenotes/
Firefox OS 2.2就是基于这个版本的。所有早期版本的Firefox OS都将在workers上缺少IDB。
请注意,应该可以在工作人员中检测IDB,如果不可用,则使用polyfill。它基本上涉及到使用postMessage()将操作代理回主窗口。
发布于 2015-11-26 23:39:55
好吧,我完全同意正常调试工作者是相当困难的。但是有一些技巧你可以使用,我选择了Object.getOwnPropertyNames。这是在self上调用该方法的结果
Function,Object,eval,EventTarget,WorkerGlobalScope,DedicatedWorkerGlobalScope,postMessage,onmessage,D11,D12,D13,D14,D15,D27,D28,D29,D30,D31,D31,D32,IDBCursor,IDBCursorWithValue,IDBDatabase,IDBFactory,IDBIndex,IDBKeyRange,IDBObjectStore,IDBRequest,IDBOpenDBRequest,IDBTransaction,IDBVersionChangeEvent,ImageBitmap,ImageData,MessageChannel,MessageEvent,MessagePort,Notification,PerformanceEntry,PerformanceMark,PerformanceMeasure,<代码>D75,<代码>D76,<代码>D77,<代码>D78,TextEncoder,URLSearchParams,WebSocket,Worker,Console,undefined,Array,Boolean,JSON,D88,D89,D90,D91,D92,D93,D94,D95,D96,D97,D98,D99,D100,D101,D102,D103,D104,D105,D106,D107,D108,D109/code>,D111/code>URIError,Iterator,StopIteration,ArrayBuffer,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,D121,D122,D123,D124,D125,D126,D127,D128,D129,D130,D131,D132,D133
正如您所看到的,存在与IDB相关的对象(不能使用new实例化),但实例不存在。此外,还缺少IDBEnvironment构造函数。Firefox中的工人并不是第一个出问题的。
我创建了一个bug report --这是对这个特性的测试:https://jsfiddle.net/fuj7koog/1/
https://stackoverflow.com/questions/33907201
复制相似问题