[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Имитировать F5 на javascript
sdisk
Здравствуйте, как можно повторить нажатие клавиши F5 в GET запросе запуск в цикле window.location = 'адрес сайта' не дает нужного результата. Что если использовать AJAX в цикле?
kaww
location.reload();

Цитата (sdisk @ 15.09.2014 - 06:42)
window.location = 'адрес сайта' не дает нужного результата.

это потому что надо:
location.href = location.href
sdisk
Цитата (kaww @ 15.09.2014 - 10:55)
location.reload();

Цитата (sdisk @ 15.09.2014 - 06:42)
window.location = 'адрес сайта' не дает нужного результата.

это потому что надо:
location.href = location.href

Простите, не совсем понял. Ведь
reload([forceget]) - перезагрузить документ по текущему URL. Аргумент forceget - булево значение, если оно true, то документ перезагружается всегда с сервера, если false или не указано, то браузер может взять страницу из своего кэша.

Мне же надо с моей страницы послать много запросов GET по указанному адресу. Можно конечно попробовать curl но интуицией чувствую, что на JS можно сделать.
sergeiss
sdisk, у меня есть большое подозрение, что ты не понимаешь суть работы с веб-страницами. Потому что больше одного запроса на перезагрузку ты не сделаешь с одной и той же страницы smile.gif Просто "по определению" не получится больше одного.

Поэтому лучше опиши основную задачу, а не то, как ты собираешься ее решать. А уж по задаче предложим решения.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sdisk
Цитата (sergeiss @ 15.09.2014 - 11:30)
sdisk, у меня есть большое подозрение, что ты не понимаешь суть работы с веб-страницами. Потому что больше одного запроса на перезагрузку ты не сделаешь с одной и той же страницы smile.gif Просто "по определению" не получится больше одного.

Поэтому лучше опиши основную задачу, а не то, как ты собираешься ее решать. А уж по задаче предложим решения.

При удержании клавиши F5 идет куча запросов на сайт, при чем не дожидаясь ответа от сервера (тут правильно я понимаю?) если там тяжелый SQL запрос, то сайт ложиться. Вот и возникла мысль, а как повторить тоже самое средствами js или php, в php приходит первое в голову использование curl но может как нибудь через js послать в цикле множество запросов, но без открытия новых окон
killer8080
sdisk
для тестирования производительности есть специальные утилиты. С тем же апачем из коробки идёт тулза ab.
kaww
sdisk, если это нужно для нагрузочного тестирования, то есть специализированные инструменты. Если же просто академический интерес, то тут вариантов масса, например:

while(true) {

var image = document.createElement("img");
image.src = "http://mail.ru/?p=" + Math.random();
}

З.Ы. этот код приведет к зависанию браузера или вкладки (зависит от того чем пользуетесь)
sdisk
kaww, Тут имеет место быть и тестирование и интерес, необходимо отследить именно тяжелые SQL запросы не зажимая постоянно клавишу F5. Почему любой браузер позволяет это сделать а стандартные средства нет? Может подскажите какие есть программы для данной задачи?
killer8080
Цитата (sdisk @ 15.09.2014 - 12:15)
Может подскажите какие есть программы для данной задачи?

я выше уже написал
sdisk
Цитата (killer8080 @ 15.09.2014 - 12:17)
Цитата (sdisk @ 15.09.2014 - 12:15)
Может подскажите какие есть программы для данной задачи?

я выше уже написал

Спасибо, буду разбираться
sdisk
Цитата (killer8080 @ 15.09.2014 - 11:57)
sdisk
для тестирования производительности есть специальные утилиты. С тем же апачем из коробки идёт тулза ab.

А на JS или php возможно сделать подобное?
kaww
Цитата (sdisk @ 15.09.2014 - 08:15)
необходимо отследить именно тяжелые SQL запросы
sergeiss
Цитата (sdisk @ 15.09.2014 - 12:15)
Почему любой браузер позволяет это сделать а стандартные средства нет?

Когда ты нажал Ф5, то идет обращение к серверу и происходит перезагрузка страницы. Один раз всего! Следующее нажатие Ф5 относится уже ко второму экземпляру страницы, а не к первому. Для второго экземпляра нажатие Ф5 будет также единственным.
Цитата (sdisk @ 15.09.2014 - 11:48)
При удержании клавиши F5 идет куча запросов на сайт, при чем не дожидаясь ответа от сервера (тут правильно я понимаю?) если там тяжелый SQL запрос, то сайт ложится.

То есть, ты в итоге хочешь эмулировать бурную жизнедеятельность юзера, который тыкает Ф5, не дожидаясь ответа? Если да, то можно попробовать на JS это сделать. Только надо открывать новые экземпляры страницы не в этом же окне, а в новых. Тогда да, ты сможешь за некоторое время вызвать энное количество экземпляров страницы, не дожидаясь окончания загрузки. Заодно положишь и сервер, и браузер.

Вот только вопрос: а ты уверен, что тебе именно это надо сделать?
Во-первых, как правильно уже заметили, если у тебя "тяжелые" запросы, то можно их попробовать оптимизировать. Правильная оптимизация зачастую творит чудеса wink.gif
Во-вторых, можно попробовать сделать так, чтобы у юзера не возникало желание постоянно тыкать Ф5. Например, выводить какие-нибудь сообщения.
В-третьих, если уж действительно сложные запросы, которые долго выполняются, то можно и нужно оптимизировать скрипты, чуть усложнить логику их работы. Как именно - это отдельный разговор, но можно сделать так, чтобы запрос выполнялся только один раз, вне зависимости о того, сколько раз юзер нажмет Ф5.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Valick
я хочу вам рассказать историю Чехии
что у нас с кешированием на уровне MySQL?

_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.