Javascript strip десятичный от числовой
Я использую Math.random для генерации случайной строки, переданной в вызове ajax. Проблема заключается в том, что сгенерированная строка содержит десятичное число, и сервер интерпретирует это как file.ext (которого, конечно, не существует).
Например, с http.log:
File does not exist: /path/to/site/foo.php&arg=123&randval=0.5678719817071954, referer: http://site/bar.php?arg=123
Ajax используется для генерации ссылки:
$(document).ready(function()
{
$(\"#placeholder\").load(\"/foo.php?arg=123\");
var refreshId = setInterval(function()
{
$(\"#placeholder\").load('/foo.php?arg=123&randval='+ Math.random());
}, 5000);
$.ajaxSetup({ cache: false });
});
Что я хотел бы закончить это:
foo.php&arg=123&randval=05678719817071954
Аргумент randval
не используется, кроме как для гарантии того, что я не получу кэшированную версию страницы. Это может не понадобиться, но это из примера, который я использовал для настройки вызова jjery ajax.
5 ответов
Я бы предложил, вместо Math.random()
, с помощью:
(Math.random() + '').replace('.','');
Math.random()
возвращает значение между 0
а также 1
, чтобы получить числа между 0
а также max
вам нужно умножить это на max
, Это должно сделать:
Math.floor(Math.random() * 1e16) // 1e16 == 10000000000000000
Может быть, проще и чаще... если вам не нужно использовать Math.random()
+ (new Date()).getTime();
Почему бы не использовать new Date().getTime()
и избежать всех хлопот
Другие ответы верны - но я упустил очевидный тип в моем коде. Ссылка, которую я писал:
foo.php&arg=123
Должно быть
foo.php? Arg=123
enter code here
После обновления файл не найден, ошибка была устранена.
Спасибо за предложения по исправлению математических и десятичных ошибок - не нужно сейчас, но полезно знать.