キャッシュの問題で、現在の日時を URL とともに送信したいのですが、次のコードでは、現在のタイムスタンプが URL に表示されません。
<script>var d=new Date();</script>
<li><a href="/controllername?t="+d.getTime()+"&name=.... // etc
URLにjavascriptデータタイムを適切に追加するには?
キャッシュの問題で、現在の日時を URL とともに送信したいのですが、次のコードでは、現在のタイムスタンプが URL に表示されません。
<script>var d=new Date();</script>
<li><a href="/controllername?t="+d.getTime()+"&name=.... // etc
URLにjavascriptデータタイムを適切に追加するには?
インライン JavaScript を使用する代わりに、DOM で要素を識別しhref
、次のように単純に属性を設定することをお勧めします。
html
<ul>
<li><a id="timeLink" href="#">Time Link</a></li>
</ul>
JavaScript
var d=new Date();
var timeLink = document.getElementById("timeLink");
timeLink.setAttribute("href","/controllername?t="+d.getTime());
いつものように、 を使用jQuery
すると大幅に簡素化できます。
$(document).ready(function(){
var d = new Date();
$("#timeLink").attr("href","/controllername?t="+d.getTime());
});
ここに機能的なフィドルがあります
使用new Date().getTime();
してリンクに添付する
<a id="link" href="/controllername?t="+d.getTime()+"&name=.... // etc
要素をlink
取得してタイムスタンプを追加します。
var link = document.getElementById('link');
var now = new Date().getTime();
link.setAttribute("href", "/controllername?t=" + now);
リンクをクリックしたときに現在のタイムスタンプを追加したいので、上記のコードを のonclick
関数にhref
添付します。リンクをクリックすると、実際のタイムスタンプが URL に追加されます。http://jsfiddle.net/GBBdc/の例を参照してください。
これを試して:
<a href="#" onClick="this.href='/controllername?t=' + (new Date().getTime());">click me</a>
ASPを使用しているので、スクリプトを次のように定義できます。たとえば、好きな形式 (.ToString("hh:mm:ss")) を実行できます
<script> var d = '<%=DateTime.Now.Ticks %>';</script>
このようにして、ローカライズされた形式である可能性のあるクライアント側の文字列とは対照的に、常に正しい形式であることを確認しながら、任意の形式を使用してバックエンドで好きなように使用できます。
内部にいない場合は d オブジェクトを使用できません<Script>
次のようにします。
<script>
var d=new Date();
$("#mylink").attr("href","...." + d.getTime() + "..");
</script>
<a id="mylink">
これをスクリプトに書くだけでとても簡単です
var d = '';時間は毎秒、ミリ秒などで変更されるため、最新の時間値を URL で送信する必要があります。
<a href="javascript:sendRequest('/controllername?t=');">Send Request</a>
Javascript:
function sendRequest(oldUrl){
var d = new Date();
var newUrl = oldUrl + d.getTime();
window.location = newUrl;
}
これがそのデモです