pythonでjsonファイルにキー("number")とfor文により変化する値("1"、"2"、"3"、"4"、"5"、"6"・・・)をwith open(このwith openはfor文内にあります)で書き込みながら
Ajaxで刻々と変化し続ける以下のコードでjsonファイルから変化する値を読み込み、id="hello"のタグに代入する作業をループさせると
javascript
1function ajax_func(){ 2console.log('ajax start'); 3var deferred = new jQuery.Deferred(); 4$.ajax({ 5url:'../static/json/test.json', 6data: {name:'number'}, 7dataType:'json', 8}).done(function(data){ 9$('#hello').text(data.number); 10}).fail(function(){ 11}).always(function(){ 12deferred.resolve(); 13}); 14return deferred; 15}; 16setInterval(ajax_func,300);
3ミリ秒ごとに「ajax start 1」がコンソールに出力され、ずっと1しか出ません。
なぜ最初に読み込まれた値がずっと保持されているのでしょうか?
ちなみにpython側でjsonをfor文内にwith openを使い読み取ったものをprintするとちゃんと1,2,3,・・・と増えて表示されます。
エラーメッセージは何もありません。
この問題を解決するにはどうすればいいでしょうか。
よろしくお願い致します。
追記:F12キーを押し、NetworkのページでDisable Cacheにチェックを入れたところ、コンソールに「1,2,3,...」と出力されるようになりました!
ですが、あくまでデベロッパーツールを開いているときのみ正常に出力され、デベロッパーツールを閉じるとまた値が固定のまま出力されてしまいます。
キャッシュを削除するコードは色々あるかと思いますが、FlaskのCacheクリアメソッドをfor文の中に入れたところ、現状何も変わりません。
キャッシュを削除するコードはどのあたりに入れるべきでしょうか。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/06 23:05