我正在构建一个使用HTML localStorage的小项目.虽然我没有接近localStorage的5MB限制,但我还是决定进行压力测试.
本质上,我将数据对象加载到单个localStorage对象中,直到它只是略低于该限制,并且必须请求设置和获取各种项目.
然后我使用javascript Date对象和事件处理程序非正式地执行setItem和getItem (绑定get并设置为HTML中的按钮,然后单击= P)
性能非常糟糕,请求时间在600毫秒到5,000毫秒之间,而且在更严重的情况下内存使用量接近200毫安.这是在Google Chrome中使用MacOSX上的单一扩展程序(Google Speed Tracer).
在Safari中,它基本上都是> 4,000ms.
Firefox是一个惊喜,几乎没有超过150毫秒.
这些都是基本上处于空闲状态 - 没有YouTube(Flash)阻碍,没有多少标签(只有Gmail),除了后台进程+浏览器之外没有应用程序打开.一旦内存密集型任务弹出,localStorage也会按比例放缓.FWIW,我正在运行2008年末的Mac - > 2.0Ghz Duo Core,配备2GB DDR3内存.
===
所以问题:
不幸的是,我怀疑我们是否能够解决它,但是越接近就能理解浏览器在当前状态下的局限性.
谢谢!
背景
现在,我正在尝试使用couchDB/couchapp构建一个应用程序,该应用程序将存储来自用户的持久且关键的信息,并且我坚持使用couchapp进行用户注册所需的步骤.
基本上,我想要做的是有一个简单的注册表单,用户可以使用它来注册帐户以使用我的应用程序.这将需要在couchdb _users数据库中创建新用户,并创建新数据库,并为新用户分配数据库admin角色.
这一切都需要服务器管理员凭据
理想情况下,我希望能够使用其中一个jquery.couch.js功能进行呼叫,但似乎没有一种安全的方法可以做到这一点.(或者有??)
题
将此任务卸载到中间层软件或其他方面的最有效但最安全的方法是什么?
通过高效,我的意思是为用户需要最少的步骤,对我来说不一定是最少的麻烦.
截至目前,我已经设置了一个单独的node.js服务器来接收注册请求.我的couchDB服务器管理员凭据作为假定的私有变量存储在节点server.js文件中.然后我使用将任何数据库创建请求POST回到couchDB couch-client.
我在这里跳过太多(潜在的不安全)箍吗?有没有更好的方法来确保安全的注册过程?
谢谢.