$.ajaxメソッドを利用したAjax通信で、サーバー側で生成された現在時刻を表示を試します。
○PHP
<?php print date('H時i分s秒');
現在時刻を取得するためのコード
○HTML
<!DOCTYPE html> <html> <head> <title>サーバー側で生成された現在時刻を表示する</title> </head> <body><form> <input type="button" id="btn" value="現在時刻" /> <div id="result"></div> </form> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script> $(function() { // ボタンクリック時に現在時刻を表示 $('#btn').click(function() { // current.phpから現在時刻を取得 $.ajax('ajTime.php', { type: 'get', dataType: 'text', cache: false } ) // 取得した現在時刻を出力 .done(function(data) { $('#result').text(data); }); }); }); </script> </body> </html>
これで【現在時刻】ボタンを押すたびに時刻が更新されて表示されます。
このコードをChrome、Firefoxなどのブラウザから動作させた場合は問題ありませんが、
IEだとボタンを何度クリックしても時刻は更新されません。これはIEがAjax通信の結果をキャッシュしてしまうために起きてしまいます。
このような現象を回避するには、cache
パラメーターに明示的にfalseを指定すれば、キャッシュが無効化され、IEのブラウザでも時刻が表示されます。
$.ajax('ajTime.php', { type: 'get', dataType: 'text', cache: false }