davis.jsで、chrome / safariでページをリロードまたはロードすると、ルートに対して2つのリクエストが生成されます。リンクをクリックすると、1つのリクエストしか生成されません。Firefoxの読み込みでは、リンクを再読み込みしてクリックすると、リクエストが1つだけ生成されます。リクエストを1つだけ実行したいので、コンテンツを再描画したり、アニメーションを2回実行したりすることはありません。
これを修正して、リクエストを1つだけ受け取る方法はありますか?ルートにタイムアウトを設定して、xミリ秒ごとに1つのリクエストしか送信できないようにする必要がありますか?しかし、それはハックのように聞こえます。
私が行っていることの説明:ルートを使用してさまざまなコンテンツをロードする単一のインデックスページがあります。APIからデータを取得し、アンダースコアテンプレートをロードして、コンテンツコンテナに配置します。
davis.js0.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']);
});
});
Firefoxコンソール:
[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
Chromeコンソール:
[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