私は Symfony2 の下でプロジェクトを行っています。同じコントローラー (履歴、カレンダー) で 2 つのアクションと 2 つのビューを取得しました。
私の履歴アクションは、今週のデフォルト値でカレンダー アクションを呼び出します。次に、それ自体がカレンダー ビューをレンダリングする履歴ビューをレンダリングします。
最初の質問、それは機能していますが、カレンダー HTML ビューの前に、symfony は文を追加しました:HTTP/1.0 200 OK Cache-Control: no-cache Date: Wed, 30 Jan 2013 10:17:13 GMT
どうすればこの文を削除できますか?
これを行っているのは、calendar Controller (前週または翌週とは異なる) を呼び出してカレンダーを先週または来週にする JavaScript リンクをいくつか取得し、新しいカレンダーを div に出力するためです。それは一種の動作ですが、私はいくつかの奇妙な動作をしました。JavaScript コードをカレンダー ビューに配置しました。初めてJavaScriptがコードソースに表示するページをロードし、動作します。前の週または次の週のボタンを押すと、カレンダー コントローラーはカレンダーの新しいビューを返しますが、javascript はありません。Firebug で JS が表示されなくなりました。しかし (そしてそれが最も奇妙な部分です)、JavaScript は引き続き機能します (ボタンを押すと、カレンダー div がリロードされます)。
これが私のコードの一部です:
calendar.html.twig :
<script type="text/javascript">
$('.nextWeek').live('click', function () {
$.ajax({
url: 'prof_calendrier/{{ nextWeek }}',
success: function (html) {$('.calendrier').html(html);}
});
});
$('.lastWeek').live('click',function () {
$.ajax({
url: 'prof_calendrier/{{ lastWeek }}',
success: function (html) {$('.calendrier').html(html);}
});
});
</script>
<p>Week from {{datesWeek.0}} to {{datesWeek.6}}</p>
[...] display rest of informations
prof_calendrierAction (カレンダーアクション) :
public function prof_calendrierAction ($date) {
$erreur='';
$message='';
$session = $this->container->get('session');
[...] // lot of operations
return $this->render('CDUserBundle:Default:prof_calendrier.html.twig', array(
'next_cours' => $liste_prochains_cours,
'today' => date('D'),
'nextWeek' => $nextWeek,
'lastWeek' => $lastWeek,
'datesWeek' => $datesWeek
));
}
誰か助けてくれませんか? *
編集:HTTPメッセージを避けるために、履歴アクションはカレンダーアクションを呼び出さなくなりました。履歴をレンダリングし、履歴ビューで、今日の週でカレンダーのアクションをチェックする ajax init を取得しました。しかし、先週または来週のボタンで JavaScript を更新すると、html は変更されますが、JavaScript は更新されません。JavaScript はカレンダー ビューに記述されているため、なぜカレンダー アクションは初回よりも JS を返さないのですか。
Edit²: いくつかのテストを行いました。前/来週ボタンの JavaScript がカレンダー ビューになっています。これは、このビューに記述されたすべての JS 行がキャッチされ、しばらくの間キャッシュされているようなものです。つまり、来週初めて押すと、来週は問題ありません。2 回目は、firebug が 2 つの ajax リクエストを表示します。1 つは同じ週用で、もう 1 つは次の週用です。最初の JavaScript 行が保持されてキャッシュされていた場合、次の週の 2 回目のプレスで、古いものを呼び出し、次に新しいものを呼び出すようなものです...