- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Использую фреймворк pjax, тоесть при нажатии на ссылку в теге <a> на странице, вся страница не перезагружается, а только часть, короче как вконтакте или твиттер. И мне нужно чтобы обновление страницы происходило только через тэг <a>, тоесть обновить страницу по JS нельзя.
При нажатии на ссылку, сначала аяксом передается информация php скипту который делает запись в таблице SQL и возвращает id этой новой записи, который потом добавляется как GET к ссылке, и только после этого должен сработать переход по ссылке от тега <a> чтобы в URL был этот GET.
Так вот, можно ли установить очередность событий так чтобы переход по ссылке осуществился только после того как выполнится процесс ajax?
Так вот, можно ли установить очередность событий так чтобы переход по ссылке осуществился только после того как выполнится процесс ajax?
да.
делайте синхронный запрос.
да.
делайте синхронный запрос.
Спасибо, помогло, осуществил так:
Тоесть все равно это не совсем корректно, так как использовал onmouseup, чтобы скрипт сработал перед переходом по ссылке который происходит после onclick который после onmouseup. Тоесть если использовать onclick вместо onmouseup то ничего не сработает, так как переход по ссылке выполняется сначала.
А можно ли как то вручную задать, что если бы даже указать onclick то как то прописать что сначала выполняется скрипт, а только потом переход?
И еще, я всегда почему то думал что синхронный запрос, это когда новый аякс запрос не может быть выполнен пока не закончиться предидущий. Но сейчас на сколько я понимаю это когда код вообще дальше не выполняется пока не выполниться полностью запрос аякс?
Qest, что бы не срабатывал переход по ссылке можно отключить стандартное событие клика по ссылке event.preventDefault()
При синхронном запросе полностью блокируется js движок и ожидается завершение выполнения запроса.
Qest, вообще с онклик тоже должно бы работать.
он выполняется до осуществления перехода по хреф
Qest, вообще с онклик тоже должно бы работать.
он выполняется до осуществления перехода по хреф
Да, извиняюсь, у меня не работало когда использовал аякс асинхронно, отсюда и вывод, вообщем в том что было асинхронно и была проблема, так как php просто не успевал отработать и поэтому аякс не успевал добавить GET в href
Ну во-первых, вы используете не фреймворк, а плагин который работает на фреймворке jQuery(кстати, не понятно зачем).
А JavaScript впринципе асинхронен, и это значит что callback ваш друг, соответственно ваша задача решается простым вызовом document.location = $(this).attr('href') в функции колбэке на окончание аякс-запроса. как то так:
profaller, задачу-то почитайте, ли свое решение проверьте.
как минимум нужно:
1. отмена ивента.
2. передача параметра для урла.
задача у ТС была выполнить переход по оканчанию аякс-запроса. занавес.
задача у ТС была выполнить переход по оканчанию аякс-запроса. занавес.
ну логично: высрал непроверенного кода, пальцы растопырил и, считай, дело сделал :)
при асинхронном запросе, пока будет идти запрос на сервер и ответ обратно, произойдет переход по ссылке в href ещё ДО окончания запроса - нет отмены дефолтного ивента. так что задача НЕ выполнена.
кроме того, во внутренней анонимной функции $(this).attr('href') не будет доступен. угадайте почему.
ну и то, что код не проверен - ясно из невалидного синтаксиса.
В общем, марш в школу :)
dkameleon, послушайте умник, хотя не, уважаемый(репа-та огого) умник, великий знаток JSа, не пишите пожалуйста больше ересь, ну пожалуйста. я же за вас беспокоюсь, засмеют ведь. "отмена ивента", "анонимные функции", какие умные слова-то знаете, и судя по всему, это вы любите пальцы растопыривать. сорри за офтоп.