powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Выполнить http запрос одновременно с нажатием ссылки
13 сообщений из 13, страница 1 из 1
Выполнить http запрос одновременно с нажатием ссылки
    #39126605
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не получается выполнить http запрос одновременно с нажатием ссылки

Код: javascript
1.
2.
3.
4.
5.
6.
7.
<SCRIPT type="text/javascript">
	function callMyAction(){
		var xhr = new XMLHttpRequest();
		xhr.open('GET',	encodeURI('${pageContext.request.contextPath}/makeobtained.action'));
		xhr.send();
	}
</SCRIPT>


это работает только если ссылка
Код: javascript
1.
<a href="#" onclick="callMyAction()">test link</a>


а если так, то не работает
Код: javascript
1.
<a href="http://google.com" onclick="callMyAction()">test link</a>


Как это сделать?

И вторая проблема - страница "прыгает" вверх при
Код: javascript
1.
 href="#"
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126614
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема была в браузере...
в firefox - работает.

но почему страница прыгает вверх?
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126618
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174проблема была в браузере...
в firefox - работает.

но почему страница прыгает вверх?

извращение.

в обработчике клика и делай переход - location.href=" http://google.com"
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126631
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

может быть, но мне надо извратиться еще сильнее

например если ссылка такая, т.е. тут работает библиотека lightbox:

Код: javascript
1.
2.
3.
4.
5.
<a class="" style="text-decoration:none" onclick="prototypeFunc()" 
	href='${pageContext.request.contextPath}/GetImages?n=<c:out value="${var.flower}"/>' 
	rel="lightbox" title='' >
		<img src='${pageContext.request.contextPath}/GetImages?n=<c:out value="${var.flower}"/>&s=1'>
</a>


возможно ли как-то совместить функцию onclick (я еще попробовал с prorotypе, но не получается) с этой библиотекой?
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126632
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. сама фуyкция prorotype работает на просnой ссылке с переходом, но не работает в паре с lightbox.js
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126633
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

если сделаешь переход на другую страницу, ajax запрос накроется медным тазом.

Хочешь отслеживать переходы?
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126781
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

нифига не накроется, оно же работает, т.е. идет переход по ссылке на другую страницу, и одновременно выполнятся запрос, который что-то запускает процесс на сервере
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126813
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174нифига не накроется, оно же работает, т.е. идет переход по ссылке на другую страницу, и одновременно выполнятся запросСкорее, тут гонка имеет место быть. Не угадаете, что раньше сработает - преход или аякс. При переходе страница будет выгружена и, если к тому времени аякс не успел отработать, то и не отработает уже. Ибо, работать нечему.
Вероятно, нужно сделать более явный порядок выполнения. В onclick явно возвернуть false (тогда браузер не будет самостоятельно отрабатывать переход по ссылке), а в скрипте обработки клика следует дождаться ответа сервера на ajax-запрос и только потом инициировать переход по ссылке.


rema174это работает только если ссылка
Код: javascript
1.
<a href="#" onclick="callMyAction()">test link</a>



а если так, то не работает
Код: javascript
1.
<a href="http://google.com" onclick="callMyAction()">test link</a>

В первом случае страница не выгружается. Потому и работает.
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126831
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vklerema174это работает только если ссылка
Код: javascript
1.
<a href="#" onclick="callMyAction()">test link</a>


а если так, то не работает
Код: javascript
1.
<a href="http://google.com" onclick="callMyAction()">test link</a>

В первом случае страница не выгружается. Потому и работает.
я позднее указывал, что это проблема браузера - все-таки к firefox больше доверие, чем к seamonkey
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126837
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174,

Эту цитату я привёл в качестве примера к сказанному выше о выгрузке страницы из браузера. Нет выгрузки - скрипт работает, однозначно. Перешел браузер по ссылке - медным тазом накрылся скрипт, как уже говорилось выше. Ну, оказался один браузер в данной ситуации чуток шустрее или медленнее другого, и что с того? В другой раз вебсервер протормозит и озадачит Вас ещё раз. Будете рассуждать, что к вебсерверу N больше доверия, чем к вебсерверу M? А если притормозит провайдер на направлении аякс-запроса - тогда предложите провайдера поменять? Однако, если Вы делаете решение, пригодное для работы только в некоторых тепличных условиях или строго определённых браузерах - конечно же, это Ваше право.
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126856
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,

т.е. если я правильно понял, вы говорите, что если браузер успеет перейти по ссылке быстрее, чем сработает onclick , то запрос в onclick не выполнится или не успеет завершиться.

скрипт, что я привел - это пример ассинхронного запроса.
разве это не означает, что оба запроса отработают независимо?
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126869
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174т.е. если я правильно понял, вы говорите, что если браузер успеет перейти по ссылке быстрее, чем сработает onclick , то запрос в onclick не выполнится или не успеет завершиться.Верно.


rema174скрипт, что я привел - это пример ассинхронного запроса.
разве это не означает, что оба запроса отработают независимо?Именно так. И у браузера как раз нет причины ждать завершения скрипта. Для Вашего случая асинхронный запрос в чистом виде не годится.
...
Рейтинг: 0 / 0
Выполнить http запрос одновременно с нажатием ссылки
    #39126872
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, если не хотите ждать окончания асинхронного запроса, можете попробовать открывать ссылку в новом окне/вкладке с target="_blank".
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Выполнить http запрос одновременно с нажатием ссылки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]