За последние 24 часа нас посетили 19549 программистов и 1633 робота. Сейчас ищут 1845 программистов ...

Ajax при выходе или перезагрузке страницы

Тема в разделе "JavaScript и AJAX", создана пользователем CrashBug, 11 июн 2016.

  1. CrashBug

    CrashBug Новичок

    С нами с:
    22 май 2016
    Сообщения:
    6
    Симпатии:
    0
    Есть такая задача. Послать данные с помощью Ajax при переходе на другую страницу или её перезагрузке. Пробовал по разному:

    Код (Javascript):
    1. $(window).unload(function(){
    2.     $.ajax({
    3.         type: "POST",
    4.         url:"obrabkorz.php",
    5.         data:{newcount, newprice},
    6.         success:function(){alert("Отправлено");}
    7.     });
    8. });

    Не работает. Событие не ловит.
    Даже такой простенький пример и то не заводится


    Код (Javascript):
    1. $(window).unload(function(){
    2.   alert("Сообщение");
    3. });
    Тоже самое. Не реагирует.
    Код (Javascript):
    1. window.onbeforeunload = function () {alert("Сообщение");}
    Вот этот код работает, но всплывающее окно мне не нужно. Как понял этот вариант работает только с ним. Функция должна работать тихо, без ведома пользователя перед его переходом.
    Код (Javascript):
    1. window.onbeforeunload = function (evt) {
    2. var message = "Document 'foo' is not saved. You will lost the changes if you leave the page.";
    3. if (typeof evt == "undefined") {evt = window.event;}
    4. if (evt) {evt.returnValue = message;}return message;}
    Подскажите каким способом можно поймать этот момент перехода и выполнить ajax.Заранее спасибо
     
    #1 CrashBug, 11 июн 2016
    Последнее редактирование модератором: 11 июн 2016
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. CrashBug

    CrashBug Новичок

    С нами с:
    22 май 2016
    Сообщения:
    6
    Симпатии:
    0
    Разобрался. Использовал LocalStorage.
    Код (Javascript):
    1. localStorage.setItem('price', newprice);
    2. localStorage.setItem('count', newcount);
    3. var localValue1 = localStorage.getItem('price');
    4. var localValue2 = localStorage.getItem('count');
    5. alert(localValue1);
    6. alert(localValue2);
    Всё работает.
     
  4. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Замечу операции с localStorage['key']='value'; работают быстрее чем с .setItem('key','value');
     
    denis01 нравится это.