Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2015, 11:17
Интересующийся
Отправить личное сообщение для Ol'kO Посмотреть профиль Найти все сообщения от Ol'kO
 
Регистрация: 14.08.2013
Сообщений: 14

Как выполнить функцию перед закрытием/перезагрузкой страницы
Здравствуйте. Требуется по умолчанию сохранять в базе данных настройки пользователя, когда он закрывает или обновляет страницу. window.onbeforeunload и unload не срабатывают. То есть onbeforeunload срабатывает, если выводить предупредительное сообщение, а просто молча функцию не выполняет. Есть какие-нибудь методы осуществить желаемое?? Буду очень благодарна за советы.
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2015, 11:48
Аватар для hfts_rider
Профессор
Отправить личное сообщение для hfts_rider Посмотреть профиль Найти все сообщения от hfts_rider
 
Регистрация: 26.01.2014
Сообщений: 181

В таком случае при любом изменении нужно сохранять настройки вне зависимости от перезагрузки или ухода с сайта.
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2015, 11:53
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Тут нет логики в onbeforeunload и описанной задаче. Юзер останется на странице - и что? Значит не ушел, значит сохраняли в бд зря, он еще поменяет что-то и опять не получится сохранить.

Все, да, сохраняется по событиям, а не в конце как в екзеле.

Делается на самом деле проще. Без аякса-шмаякса через куки. Сохранили в куках - они на клиенте лежат. Перезагружаем страницу - идет запрос к серверу. Сервер берет те же самые куки, проверяет все и сохраняет в бд, затем из бд читает или кеширует что найдено в куках и согласно настроек отдает пагу.
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2015, 11:57
Интересующийся
Отправить личное сообщение для Ol'kO Посмотреть профиль Найти все сообщения от Ol'kO
 
Регистрация: 14.08.2013
Сообщений: 14

Сообщение от hfts_rider
В таком случае при любом изменении нужно сохранять настройки вне зависимости от перезагрузки или ухода с сайта.
Такой вариант вряд ли подойдет, т.к. сохраняется расположение иконок, которые юзер может перемещать как ему нравится. Иконок много, и каждый раз отправлять ajax запросы на сервер при каждом перемещении как-то не хочется... По интервалу периодически сохранять тоже не подойдет, ведь человек может закрыть окно до того, как произошло очередное сохранение. Может возможно узнать, что пользователь шарит курсором где-то в меню браузера хотя бы и тогда произвести сохранение? Как это делается у нехороших сайтов, которые когда пытаешься их закрыть или уйти со страницы, выводят модальное сообщение при малейшем движении курсора.

Последний раз редактировалось Ol'kO, 24.04.2015 в 12:01.
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2015, 12:08
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

В смысле узнать где руки юзера? не зависли ли пальцы над комбинацией кнопок alt+f4, или вы уверены что нормальный человек никогда мыш из них не выпустит?

Вам дали правильный ответ. Чтобы не гонять аякс по каждому чиху, сохраняете все через json в куказ и все. Сервер сохавает перед выдачей паги в следующей сессии и все будет выглядеть как оставлено.
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2015, 12:08
Интересующийся
Отправить личное сообщение для Ol'kO Посмотреть профиль Найти все сообщения от Ol'kO
 
Регистрация: 14.08.2013
Сообщений: 14

Сообщение от kostyanet
Делается на самом деле проще. Без аякса-шмаякса через куки. Сохранили в куках - они на клиенте лежат. Перезагружаем страницу - идет запрос к серверу. Сервер берет те же самые куки, проверяет все и сохраняет в бд, затем из бд читает или кеширует что найдено в куках и согласно настроек отдает пагу.
Что-то я про куки не совсем поняла. Если мы не перезагружаем страницу, а закрываем ее и сегодня уже не откроем? Завтра запустим приложение, а кук нет?
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2015, 12:10
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Аборигены съедят?

Куда они денутся? По кукам деньги зарабатывают, а тут какие-то иконки, блин.
Ответить с цитированием
  #8 (permalink)  
Старый 24.04.2015, 12:11
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Куки могут храниться до 9999 года. Этого достаточно? Ну вот.

Гоняйте аяксом запросы, не должно быть там проблем. Социал весь так работает. Ну или заведите кнопку или меню Сохранить настройки.
Ответить с цитированием
  #9 (permalink)  
Старый 24.04.2015, 12:15
Интересующийся
Отправить личное сообщение для Ol'kO Посмотреть профиль Найти все сообщения от Ol'kO
 
Регистрация: 14.08.2013
Сообщений: 14

у куки же есть срок действия? к тому же их можно удалить, нажав на соответствующую кнопку в браузере
Ответить с цитированием
  #10 (permalink)  
Старый 24.04.2015, 12:17
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Срок действия устанавливает разработчик, максимальный - 9999 год. Что касается удаления куков, то у ваших пользователей все равно нет столько извилин чтобы открыть настройки браузера. Но самая мякотка - как они потом залогиняться к вам на сайт удалив куки? Никто их не удаляет, не переживайте. О них даже никто не знает кроме нас с вами.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как назвать функцию? mrtarantul Оффтопик 12 10.08.2013 16:26
Как выполнить функцию через открытое окно из родительской страницы Влад31/08/2000 Элементы интерфейса 2 29.04.2013 18:28
Как вызвать функцию из другого файла Mukhtar AJAX и COMET 4 07.10.2011 22:01
Как поучить скомпелированный код страницы? Petrov.I1969 Общие вопросы Javascript 14 21.05.2011 09:34