回答に飛び込む前に、私のシナリオを理解していることを確認してください。
- CREATE が点滅する ajax 呼び出しがあります。
- フラッシュを JSON としてフェッチする他の ajax 呼び出しがあります。
現在起こっていること: フラッシュを作成するボタンをクリックします。その後、実行する ajax 呼び出しを実行します。
public function actionGetAllFlashesAsJSON() {
$flashMessages = Yii::app()->user->getFlashes(true);
$returnResult = array();
foreach ($flashMessages as $key => $value) {
$newItem = array();
$newItem['message'] = $value;
$newItem['kind'] = $key;
$returnResult[]= $newItem;
}
print json_encode($returnResult);
die();
}
私の問題は、この関数を 2 回続けて実行しても、フラッシュが返され続けることです。ただし、サイトを更新するとエラーが表示され、もう一度更新を押すと消えてしまいます。私の理論では、ページの更新により、他の種類のメッセージの削除が引き起こされているということです...しかし、何ですか? また、上記のコードでメッセージを受信した後、これらのメッセージを強制的に削除するにはどうすればよいですか?
詳細な背景情報: フラッシュをエラー メッセージとして使用していますが、サイトの上部に表示されるようにしたいと考えています。フラッシュは Ajax 経由で作成される可能性があるため、新しいメッセージをチェックして表示するために JavaScript を実行していますが、getFlashes を呼び出した後にメッセージが削除されないため、メッセージが何度も表示されるという問題がありますか?