Действительно случайная строка в Javascript асинхронно - PullRequest
0 голосов
/ 30 августа 2011

Я использую функцию JavaScript для генерации случайной строки:

function S4() {
   return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}

function guid() {

    /*$.ajax({
        type: "GET",
        url: "uuid.php",
        cache: false,
        success: function(html){
            return html;
        }
    });*/

   return (S4()+S4()+S4()+S4());
}

И я хочу, чтобы он использовал библиотеку php uuid, которую я нашел, проблема в том, что мне нужно, чтобы она работала в javascript. Я часто использую функцию guid () и пытаюсь придумать элегантный способ получения uuid, который я запрашиваю с помощью объекта ajax (закомментировано выше). Страница uuid, которая просто печатает случайные uuids каждый раз, находится рядом с этой страницей. Я не хотел бы делать запрос синхронным, потому что, как я уже сказал, я использую его довольно часто и предпочел бы, чтобы все не останавливалось каждый раз, когда эта вещь делает запрос. Или, может быть, есть метод, который я мог бы использовать в jQuery, который был бы настолько быстрым и не мешал бы производительности?

Я не против того, чтобы что-то изменить немного, как бы здесь лучше всего приобретать uuid под нагрузкой? Но число UUID, которые я генерирую, является полностью динамическим и зависит от пользователя.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Проверьте функцию uniqid() из phpjs.org .

1 голос
/ 30 августа 2011

Как насчет добавления аргумента обратного вызова в функцию guid (), где вы можете присвоить значение чему-либо:

function guid(callback) {
    $.ajax({
        type: "GET",
        url: "uuid.php",
        cache: false,
        success: function(html){
            callback(html);
        }
    });
}

var value;

guid(function (result) {
    value = result;
});
...