开发者

Javascript: url containing random number

开发者 https://www.devze.com 2023-02-04 07:37 出处:网络
A friend is linking my page from his site. As I need users to avoid caching when visiting my page, I want the url to have this form:

A friend is linking my page from his site. As I need users to avoid caching when visiting my page, I want the url to have this form:

http://www.mypage.com/index.php?456646556

Where 456646556 is random number.

As my friend does not have installed php, how can I build the link with the random number using Javascript?

Also my friend asked m开发者_如何转开发e to give him just the url, with no further functions as his page is already loaded with them. Can it be done?

Thanks a lot


I would add a parameter but you can leave it out if needed:

var url = "http://www.mypage.com/index.php?rnd="+Math.random()

or

var url = "http://www.mypage.com/index.php?rnd="+new Date().getTime()

Link:

<a href="http://www.mypage.com/index.php?rnd=1" onClick="this.href=this.href.split('?')[0]+'?rnd='+new Date().getTime()">Mostly random</a>

Note that if you have more than one assignment - for example in a loop, you need to add to the getTime since an iteration of the loop is faster than a millisecond:

var rnd = new Date().getTime();
for (var i=0;i<links.length;i++) {
   links[i].href = "http://www.mypage.com/index.php?rnd="+(rnd+i);
}

UPDATE to use the URL constructor with searchParams

const addRnd = urls => {
  let rnd = new Date().getTime();
  return urls.map((urlStr,i) => {
    let url = new URL(urlStr);
    url.searchParams.set("rnd",rnd+i);  // in case called multiple times
    return url;
  });
};
const urls = addRnd( ["http://www.mypage.com/index1.php","http://www.mypage.com/index2.php","http://www.mypage.com/index3.php"])
console.log(urls)


<a href="http://www.mypage.com/index.php?" onclick="this.href+=new Date().getTime();return true;">link</a>


var lower = 0;
var upper = 100000000;
var url = "http://www.mypage.com/index.php?"+(Math.floor(Math.random()*(upper-lower))+lower)

it generates a random X from 0(lower) to 100000000 (upper), you can obv set the bounds you want ;)


Use Math.random():

 // navigate to the new page and append a random number at the end of the url
 window.location.href = newUrl + '?' Math.random();

Beware you might get the same output twice from Math.random, after all it's random.

0

精彩评论

暂无评论...
验证码 换一张
取 消