尽管我非常了解JavaScript,但我很困惑Node.js生态系统中这三个项目究竟是做什么的.它是否像Rails的机架?有人可以解释一下吗?
我有一个Web应用程序,可以让浏览器长时间缓存AJAX请求.我已经找到了如何在检测到可能的修改时提出完全绕过缓存的请求.但我想让用户触发数据刷新.
在这种情况下,我希望浏览器检查服务器是否停止缓存,但如果不缓存则使用它(即,如果服务器响应304代码).目标是节省加载时间,因为数据量巨大.
服务器在所有响应中包含以下标头:
Cache-Control: private, max-age=604800
Last-Modified: ... # actual last modification date
Run Code Online (Sandbox Code Playgroud)
我设法通过在请求中使用以下HTTP标头完全在Chrome中破解了缓存对象(尚未测试其他浏览器):
Cache-Control: max-age=0
If-Last-Modified: Tue, 01 Jan 1970 01:00:00 +0100
Run Code Online (Sandbox Code Playgroud)
这If-Last-Modified条线是真正具有效果的线.Chrome似乎忽略Cache-Control了请求中的标头.
我还发现Cache-Control: must-revalidate在服务器响应中使用强制浏览器为每个请求验证其缓存与服务器.
但有没有办法重新验证只有一个精确的请求,在客户端决定?
请注意,我并没有特别依赖于使用HTTP标头执行此操作,因此欢迎任何其他我不了解的方法!
我开发了一种自定义类型的组合框,它使用网格而不是标准的组合选择器(主要是为了从大量数据集的缓冲渲染中获益).我现在试图使它与Ext 4.2.1兼容,但我遇到了这个错误:
[E] Layout run failed
Run Code Online (Sandbox Code Playgroud)
请参阅测试用例的演示页面.每个组合都会引发一次错误,但只会在第一次扩展时引发错误.
4.2.0没有发生此错误(请参阅4.2.0的演示页).我在4.2.1中确定的重大变化是关于查询过滤器,而不是渲染或布局...但是,在网格选择器坐在一个情况下,我已经在4.2.0中面临这个错误窗口,但它在代码库中有很多覆盖,并使用了沙盒版本的Ext4 ...所以我只是跳了它不是来自我的组件并使其沉默(另一个演示页面证明了网格选择器+窗口不是足以触发错误).
这个错误似乎没有任何副作用,但它让我心疼.
有谁知道造成这种情况的原因,或者更好的是,必须采取哪些措施来防止它?
或者是否有人能够很好地理解Ext的布局引擎,以便就如何追踪此类错误提供一些建议?或者至少让我放心,在任何情况下错误都将无害?
下面,您将看到我在Sencha ExtJS MVC应用程序中创建的MVC视图的JavaScript异常.我有另一个MVC视图扩展'Ext.tree.Panel',它读取一个简单的JSON对象而不是通过Ext.Direct代理和.NET服务器端堆栈提取数据,但唯一不同的是代理实现和当然我们的MVC控制器逻辑.在静态(JSON)实现中,我们的代理在模型中定义.在动态(Ext.Direct)实现中,我们的代理在商店中定义.在浏览器崩溃之前,TreeStructures.js(存储)JavaScript文件一直被请求无限次.请参阅下面的例外情况.
我非常怀疑这是一个Ext.Direct问题,因为我有其他商店在这个架构上工作得很好.我看到了[Ext.Loader]异常,但我不确定为什么会不断重复每个新的TreeStructures.js请求.或者在哪里实现这一要求.我的理解是app.js定义了控制器.然后控制器将模型定义为商店.Viewport定义并实例化其他MVC视图.我的"其他观点"是树视图.视图实现了商店.
此外,Sencha Cmd"sencha app build"命令无效.通常我的应用程序编译没有任何问题,因此在这个动态树所必需的商店或MVC配置中肯定缺少某些东西.
[Ext.Loader] Synchronously loading 'MyApp.store.TreeStructures'; consider adding Ext.require('MyApp.store.TreeStructures') above Ext.onReady
Run Code Online (Sandbox Code Playgroud)
注意:TreeStructures.js(存储)JavaScript文件一直被请求无限次,直到浏览器崩溃为止:
Uncaught RangeError: Maximum call stack size exceeded
Run Code Online (Sandbox Code Playgroud)
[ERR] failed to find meta class definition for name MyApp.store.TreeStructures
[ERR] def was null
[ERR] C2008: Requirement had no matching files <MyApp.store.TreeStructures> -- unknown-file:-1
Run Code Online (Sandbox Code Playgroud)
Ext.define('MyApp.store.Categories', {
extend : 'Ext.data.TreeStore',
model : 'MyApp.model.Category',
autoLoad : true,
root : {
text : 'All',
alias : '',
expanded : true
} …Run Code Online (Sandbox Code Playgroud) extjs ×2
javascript ×2
ajax ×1
ext-direct ×1
extjs-mvc ×1
extjs4 ×1
http ×1
middleware ×1
node.js ×1
sencha-cmd ×1