在 davis.js 中,当我在 chrome/safari 中重新加载或加载页面时,它将生成两个对我的路由的请求。当我单击一个链接时,它只会生成一个请求。在 Firefox 加载中,重新加载和单击链接只会生成一个请求。我只希望触发一个请求,因此我不会重绘内容并制作两次动画。
有没有办法解决这个问题,所以我只收到一个请求?我是否应该在我的路由上设置一个超时,以便它每 x 毫秒只能发送一个请求?不过,这听起来像个黑客。
我在做什么的解释:我有一个索引页面,它使用路由来加载不同的内容。它从 API 中获取数据并加载下划线模板,然后将其放置在内容容器中。
我正在使用最新版本的 davis.js 0.9.2。
.htaccess 设置:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /catalog/index.php [QSA,L]
戴维斯设置:
var app = Davis(function(){
this.configure(function(){
this.generateRequestOnPageLoad = true;
});
this.get(directory, function(){
RenderPage('index');
});
this.get(directory+':id', function(req){
RenderPage(req.params['id']);
});
this.get(directory+':id/:page', function(req){
RenderPage(req.params['id'], req.params['page']);
});
});
火狐控制台:
[Tue Aug 21 2012 16:02:01 GMT-0400 (EDT)] application started
[Tue Aug 21 2012 16:02:01 GMT-0400 (EDT)] runRoute: GET /catalog/users
铬控制台:
[Tue Aug 21 2012 16:01:59 GMT-0400 (EDT)] application started
[Tue Aug 21 2012 16:01:59 GMT-0400 (EDT)] runRoute: GET /catalog/users
[Tue Aug 21 2012 16:01:59 GMT-0400 (EDT)] runRoute: GET /catalog/users