Установка Ambari с остальными экосистемами hadoop

1) Если вы ищете способ работы во всех браузерах, то самым безопасным способом является отправка синхронного AJAX на сервер. Это не хороший метод, но, по крайней мере, убедитесь, что вы не отправляете слишком много данных на сервер, а сервер работает быстро.

2) Вы также можете использовать асинхронный запрос AJAX, и используйте функцию ignore_user_abort на сервере (если вы используете PHP). Однако ignore_user_abort сильно зависит от конфигурации сервера. Убедитесь, что вы хорошо его протестировали.

3) Для современных браузеров вы не должны отправлять запрос AJAX. Вы должны использовать новый метод navigator.sendBeacon для отправки данных на сервер асинхронно и без блокировки загрузки следующей страницы. Поскольку вы хотите отправить данные на сервер до того, как пользователь переместится с страницы, вы можете использовать этот метод в обработчике события unload .

$(window).on('unload', function() {
    var fd = new FormData();
    fd.append('ajax_data', 22);
    navigator.sendBeacon('ajax.php', fd);
});

Также кажется, что быть полигоном для sendBeacon . Применяется синхронный AJAX, если метод не доступен изначально.

ВАЖНО ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ: Обратите внимание, что обработчик событий unload не гарантируется для мобильных телефонов. Но ожидается, что событие visibilitychange будет запущено. Поэтому для мобильных устройств вашему коду сбора данных может потребоваться небольшая настройка.

Вы можете ссылаться на мою статью в блоге для реализации кода всеми тремя способами.

1
задан Mohad B.Masadeh 16 January 2019 в 19:16
поделиться