Django - прогресс действия дисплея

Вот некоторый материал от Википедия ( первоисточник ):

GUID V1, которые содержат MAC-адрес и время, могут быть определены цифрой "1" в первой позиции третьей группы цифр, например {2f1e4fc0-81fd-11da-9156-00036a0f876a}.

В моем понимании, они действительно не скрывают его.

GUID V4 используют более поздний алгоритм, который является псевдослучайным числом. Они имеют "4" в том же положении, например {38a52be4-9352-453e-af97-5c3b448652f0}. Строго говоря, 'data3' комбинация двоичных разрядов была бы 0001xxxxxxxxxxxx в первом случае и 0100xxxxxxxxxxxx во втором. Криптоанализ генератора WinAPI GUID показывает, что, так как последовательность GUID V4 является псевдослучайной, , учитывая начальное состояние, которое можно предсказать до следующих 250 000 GUID, возвращенных функцией UuidCreate1. Поэтому GUID не должны использоваться в криптографии, например, как случайные ключи.

6
задан hmp 10 October 2009 в 19:27
поделиться

2 ответа

  1. Опрос Ajax - Используя таймер на стороне клиента, вы постоянно опрашиваете сервер о его состоянии. Процесс выглядит следующим образом: пользователь настраивает детали базы данных и нажимает «загрузить». Файл передается, и запрос страницы запускает асинхронный процесс на сервере для выполнения импорта базы данных. Когда пользователь нажимает кнопку загрузки, запускается таймер на стороне клиента, который через регулярные промежутки времени отправляет запрос AJAX на сервер, чтобы узнать о ходе выполнения. Сервер возвращает JSON, а сценарий на стороне клиента выясняет, что он хочет с ним делать.

  2. COMET - Я не так хорошо знаком с этим, но традиционный AJAX работает, когда клиент отправляет запрос на сервер. Это известно как «притягивающее» общение. В COMET это толчок. Сервер отправляет клиенту данные о своем прогрессе, даже если сервер этого не запрашивал. Это создает меньшую нагрузку на сервер, чем опрос. Google показывает некоторые результаты для людей, использующих COMET с Django .

  3. Обратный AJAX - аналогично COMET. Обратный Ajax с Django .

(Прошу прощения, я знаю меньше всего о последних двух, но я подумал, что вы, по крайней мере, хотели бы знать, что они существуют)

3
ответ дан 17 December 2019 в 07:06
поделиться

There's no way to do this without some sort of client-side scripting, ie Ajax. You need something that will poll the server at regular intervals and show a response to the user. There's a snippet that shows how this might be done.

Of course, to make that possible you'll also have to farm off the import itself to an off-line process. This would do the import, and record its progress somewhere regularly (in a file, or the database) so that the Ajax can query it. A good way of doing this might be to use celery, the Django-based distributed task queue.

Finally, you'll need a simple view that the Ajax will call, which will query the long-running process (or look at the progress record that it creates) and report back to the client.

So, fairly complicated.

1
ответ дан 17 December 2019 в 07:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: