我无法弄清楚如何添加路径到我的Node.js安装(Mac OS X上的v.0.4.7).我安装了npm,它全局安装到/usr/local/lib/node_modules
.但是,当我安装npm时,它没有通知Node它选择放置全局模块的位置(应该有吗?).现在,当我在命令行模式下使用Node时,我不能简单地使用require()
全局安装的模块.所以,我想知道是否有某种Node配置文件或环境变量,我可以添加我的全局npm模块安装路径?
我知道,我可以把它添加到require.paths
阵列,当我在节点的命令行来的,但我想一劳永逸添加此全局模块文件夹,因此该节点将随时搜索模块的目录,当我require()
他们的命令线.在此先感谢有关使npm和Node共存的任何帮助和指示!
我正在制作一个webapp.它加载的一些文件包含纯静态.JSON数据.我正在使用带有dataType的jQuery.ajax()(jQuery 1.5.2):'json'和cache:true.一切正常,所有文件都已加载.我还配置了缓存清单来缓存这些JSON文件(除了css,js和images).一切都运行良好 - 当用户访问我的网站时,我需要的所有文件都正确缓存(我有applicationCache事件处理程序,确认一切都很好).我已经测试了谷歌浏览器中的所有内容,我可以看到所有文件(包括JSON文件)都已缓存.当我断开网络连接时,一切正常(jQuery ajax调用自动获取缓存的JSON文件).
现在我试图在移动Safari上测试这个(在实际的iPad和iPhone模拟器上).在Safari中,一切都按预期工作 - 页面被缓存,并且在网络断开的后续访问中,使用缓存的文件.
但是,当我使用Safari中的"添加到主屏幕"将应用程序添加到主屏幕时,应用程序启动并且所有.js,.css和图像都正常工作,但我的Ajax调用没有!他们不访问缓存的.json文件.对于每个Ajax调用,XMLHttpRequest.status
is 0
,.statusText
is error
,但getAllResponseHeaders()
显示与Safari中的功能应用程序相同(正确)的标头.
我不懂.这是jQuery的.ajax()中的限制/错误还是什么?任何帮助表示赞赏.
是否有一个与Node.js相同的模块来完成Apache的mod_rewrite所做的事情?或者是否有提供等效功能的标准语言结构?
我刚开始使用Node并希望将我的服务器转换为这个平台.
我创建了一个Web应用程序,它缓存所有必要的代码和数据,以便通过applicationCache脱机使用.但是,每次应用程序启动时,它都会立即尝试检查更新.这会阻塞浏览器很长一段时间,即使它没有找到任何要更新的内容.这种行为对应用程序具有很大的破坏性(不应该在后台进行更新,无论如何?).只是检查阶段需要在移动设备上花费大量时间,如果它发现更新,所有下注都将关闭下载需要多长时间(b/c它必须重新下载所有文件) - 这也冻结了浏览器.
所以,我想知道:
编辑:清单文件上可能是一个精心构造的缓存控制头是答案吗?我会调查这个,但我希望有人可以给我更多关于这些更新的信息.谢谢.
好吧,我玩过标题,没有任何帮助.我开始赏金了.如果你能提供帮助,请做!
我想不出一个好头衔,所以希望能做到.
我正在做的是创建一个离线HTML5 webapp."出于某些原因"我不希望将某些文件放在缓存清单中,而是希望将内容放在localStorage中.
所有测试均在Google Chrome for Mac/Mac OS 10.6.6中完成
我有4个.JSON文件,3,120,792
大小完全是字节大小.首次访问(在线)应用程序时,我将这个JSON内容下拉并将其放在一个字符串变量中,比方说str
.之前存储的JSON字符串,我所有的剥离\n
和\t
,和更换\"
用'
,最大限度地减少字符串的长度.
以下是字符串长度(Chrome控制台中的str.length):
original str : 3,117,764 (this is a concatenation of the contents of the 4 JSON files)
reformatted JSON: 2,732,249 (not too shabby - should save me a few bytes)
Run Code Online (Sandbox Code Playgroud)
但是,现在当我尝试将此字符串存储在localStorage中时,我收到的错误是我已超出缓存大小(Error: QUOTA_EXCEEDED_ERR: DOM Exception 22
).但是此页面没有其他缓存(我已手动删除了所有Google Chrome缓存文件).
为什么会这样?
存储在缓存中时字符串的大小是多少?
如何最大限度地减小此大小以充分利用localStorage?
编辑添加:我已尝试将字符串的1,000,000个字符保存到localStorage(localStorage.setItem('x',str.substr(1,1000000)
)中.当我在Chrome的缓存文件夹中检查localStorage文件大小时,它是2MB.这是一个sqlite数据库.看起来浏览器使用的是实际的localStorage数据库大小,而不是存储在其中的数据大小.这当然很糟糕,但可能是标准行为.我想你可以在localStorage中存储的最长的字符串是大约2,500,000个字符?