问题标签 [localforage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - $.when 承诺过早解决
我想知道为什么 $.when 解决得太早了?只有当所有其他承诺都已解决时,我才需要它来解决。我错过了什么吗?
更新:http: //jsfiddle.net/7hdx5j6z/6/
javascript - Storing and retrieving audio (mp3) with localForage
I am working on an Ionic / Cordova app which involves loading three minute audio clips (mp3) from a remote server and playing them.
I have followed this tutorial - http://www.html5rocks.com/en/tutorials/webaudio/intro/ - and the loading and playing works fine.
However I want to store / cache the loaded mp3 locally so that the user only has to download it once and the app can work offline. The files are approx 750 KB. In the example below the file is only 74 KB.
Elsewhere in the app I am using Mozilla's localForage (via [ngular-localForage) which specifically states it can be used to store ArrayBuffers - http://mozilla.github.io/localForage/#setitem
However I can't seem to retrieve the audio in a format I can play... I suspect I'm storing the wrong thing - I don't really understand what an ArrayBuffer is!
Anyway here is my basic code (at the moment I'm using a local file). First load the audio plays correctly, second load I get an error (see below):
And the response I get in the console is as follows:
At the moment I've only been testing this in Chrome, not the Cordova app.
What am I doing wrong? Or is there is a better way to do this? Perhaps I could save the MP3 to the file system instead...?
javascript - 如何使while循环真正异步
我正在开发一个 javascript 客户端项目,该项目执行一些繁重的计算,同时需要对用户友好。这当然意味着异步功能,但也让用户在计算机执行繁重的任务时做一些事情。
以此作为异步循环的示例:
这个循环完美且异步地工作,问题是如果用户点击某些东西,例如这个按钮:
循环结束后会弹出警报消息!所以用户在函数完成之前不能点击任何东西。
有没有办法让用户在这个任务期间触发一些事件?
javascript - 如何像在 localStorage 中一样从 localForage 分配变量?
请帮我解决以下问题。
我一直在将我的 AngularJS 应用程序从 localStorage 转换为 localForage。
在我的整个应用程序中,我都像这样分配 localStorage 值。
然后我正在检索这样的数据,
所以当我 console.log(myValue); // 它输出'SavedValue'
当我尝试时,我似乎无法用 localForage 做到这一点,
我没有将值设置为 myValue。
我确信这与承诺有关,因为当我使用回调时,我可以访问正确的“myValue”,但是我想将它从回调中取出,以便在服务的其余部分中使用。
另请注意,我在服务中,因此无法分配给 $scope (除非我不知道如何)。
感谢任何帮助。
谢谢乙
javascript - 刷新页面后的 localStorage/localForage 问题
我正在与 localForage 合作,在过去的 2 个小时里我一直在努力解决一件好事和一件非常糟糕的事情,我认为这更容易,但这就是我在这里的原因。
我有一个名为的数组sports
,其中包含选中或取消选中它们的选项,一旦你取消选中或checked = false
- 无论你想怎么称呼它 - 这些项目都保存在数据库中,但是当用户在会话中时它们应该保存在 localForage第一的。
好的部分:
如果您checked = false
在阵列上的任何项目并注销,然后他们登录,您设置未选中的项目仍然存在,该部分工作得很好。
不好的部分:
如果您checked = false
在数组上的任何项目并刷新页面,该项目checked = false
返回到checked = true
.
所以也就意味着刷新页面后,数据并没有持久化,只有注销再重新登录。
我正在使用forceTrip
您将在下面的代码中看到的名称。
一切都与服务有关,看
该函数在您获得任何项目setSportChecked
后执行发布请求,并发出 get 请求以获取项目,并且您可以看到我正在调用,那么您认为我可以在这里做什么?checked = false
getSportChecked
checked = false
getSports
_this.getSportChecked(customer)
angularjs - locaforage getItem() 未执行
到目前为止还没有密钥(在工具-> 存储透视图中验证)。但是该控制台输出不打印任何内容(在 Firefox 中)。有人可以告诉我可能是什么问题。控制台输出之前和之后,打印正常。
编辑:修改代码如下:
angular.toJson(hallabolo) 打印{}
尝试使用:
1. JSON.stringify(hallabolo)=='{}'
// 返回 false
2. Object.keys(hallabolo).length
// 返回 1
3. jQuery.isEmptyObject(hallabolo)
// 返回 false
4. angular.isObject(hallabolo)
// 返回 true
更不用说type of 'undefined'
,null 等不起作用,因为 hallabolo 是一个对象
android - 使用 $localForage.setItem 时,应用程序会冻结几秒钟
我正在使用 $localForage.setItem 在离子移动应用程序中本地存储数据。数据约为 7MB,使用 setItem 时应用程序会冻结几秒钟。
任何建议如何解决?
ember.js - Firefox OS 应用程序初学者,无法正确导入 localforage:找不到模块 `ember-localforage-adapter/adapters/localforage`
我目前正在学习如何在 Firefox OS 中开发新应用程序,按照 MDN 教程从这里开始:https ://developer.mozilla.org/en-US/Apps/Build/Modern_web_app_architecture
一切都很顺利,直到关于模型的部分,这里:https ://developer.mozilla.org/en-US/Apps/Build/Modern_web_app_architecture/Models_and_application_data
特别是在安装 LocalForage 时。
我尝试了第一个:
并得到了教程中描述的错误信息,所以我尝试了另一个命令bower install localforage -v '1.2.2'
它只是返回了凉亭版本。
所以我bower install localforage
一个人尝试,它奏效了。我在 myapp/bower_components/localforage 中获得了新文件夹。
接下来的教程给出了使用代码的说明:
这是我卡住的地方。我收到错误消息:
处理路由时出错:lists.index 找不到从“myapp/adapters/application”requireFrom@ http://localhost:4200/assets/vendor.js:119导入的模块“ember-localforage-adapter/adapters/localforage” :1
我没有得到导入调用背后的逻辑,没有 ember-local-forage-adapter 文件夹或类似的东西。我对命名空间还不满意,但我知道这个理论。是否存在我无法识别的名称空间问题?它与 ember-data 有关吗?
我可以给出完整的错误信息,但我很确定这无济于事。
我尽力独自解决,但我没有想法,所以我在这里问。
感谢您的帮助 :)
angularjs - LocalForage + Angular - 如何在更改时自动保存整个表单对象
我有一个名为的范围变量productForm
,我想在它的基础模型发生更改时保存它(即productForm.designer
)
我希望键是与表单关联的产品的 id,而不是基于每个输入。我尝试做这样的事情,但没有运气:
我的观点看起来像这样
当我将local-forage
绑定添加到我的输入时,它会使用product.designer
BUT 键保存特定输入,我宁愿将整个表单保存为:
key: someProductId, value: {product.designer: "foo", product.name: "bar"}
任何想法我做错了什么?
javascript - 将 LocalForage 与 jQuery 的 promise 库一起使用
我使用 LocalForage 在浏览器中进行持久存储。我也(不幸地)在项目的其他任何地方都使用了 jQuery 的延迟和承诺。我正在尝试用来$.when
收集来自许多 LocalForage 请求的响应:
这……不行。我已验证该results
数组正确包含许多 ES6 承诺对象(或在某些浏览器中来自 LocalForage 的内置 shim 的 shim 承诺)。这些对象上没有.promise
函数,因此$.when
不会将它们识别为 Promise,并then
立即使用所有 Promise 作为参数调用匿名函数。作为测试,我尝试将上面的代码更改为
它工作正常。
什么是最好的解决方案?有没有办法将 ES6/shim 承诺转换为 jQuery 承诺,除了var deferred = $.Deferred(); es6Promise.then(deferred.resolve, deferred.reject)
?