Вход

Просмотр полной версии : Как заставить Pace работать для каждого AJAX-запроса?


khusamov
29.11.2016, 19:50
Как заставить Pace работать для каждого AJAX-запроса?
github.hubspot.com/pace
Он работает лишь при загрузке страницы (у меня там одностраничное приложение). А потом, когда я со страницы делаю AJAX-запросы, то полоска прогрессбара больше не появляется. Уже все опции Pace перебрал, но это ничего не дало.

Метод Pace.restart() дает странный результат, полоска пробегает безотносительно успел выполнится запрос или нет. Да и вообще, хотелось бы чтобы Pace автоматически распознавал запросы и показывал прогрессбар.

Rise
30.11.2016, 08:55
khusamov, по-умолчанию распознаются только GET-запросы issue#285 (https://github.com/HubSpot/pace/issues/285)

<!----- или до подключения pace.js ----->
<script>
window.paceOptions = {
ajax: {
trackMethods: ["GET", "POST"]
}
};
</script>
<script src="/pace/pace.js"></script>

<!----- или атрибутом в json-формате ----->
<script data-pace-options='{"ajax":"trackMethods":["GET","POST"]}' src='/pace/pace.js'></script>

khusamov
30.11.2016, 15:04
Спасибо! Вроде работает. Пишу вроде, потому-что полоска теперь появляется, но не всегда. То-ли запрос сервер быстро отрабатывает и полоска при этом не успевает появиться, то ли еще что-то.

В документации об этом ни слова(((

khusamov
08.12.2016, 20:23
Rise, а не подскажете как на ходу Pace отключить? Ну допустим уже нет необходимости отслеживать запросы к серверу и что-то отображать на экране (или временно нужно отключить это).

Rise
08.12.2016, 21:55
khusamov, может так
// отключить
Pace.options = {
restartOnPushState: false,
restartOnRequestAfter: false
}
// включить
Pace.options = {
restartOnPushState: true,
restartOnRequestAfter: 500
}