Почему onclick не вызывает функцию для перезагрузки страницы? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть это в одном из представлений, но, кажется, он не перезагружает страницу каждые 10 секунд после нажатия кнопки, даже если я привязываю к ней функцию.

  %footer.modal__footer
    %ul.modal__list
      %li.modal__list-item
        = submit_tag t('.start'), class: 'btn btn-success', id: 'AnalysisStart', :onClick=> 'refreshPage()'


:javascript
    function refreshPage(){
       window.setTimeout(function(){ document.location.reload(true); }, 10000);
  }

может кто-нибудь, пожалуйста скажи мне, что я делаю не так? Или у меня есть какой-то другой способ добиться этого?

Можно ли также интерполировать js и ruby следующим образом:

:javascript
-if document.analyses.ready.any?
    window.setTimeout(function(){ document.location.reload(true); }, 10000);

, потому что что-то подобное решит мою проблему.

1 Ответ

0 голосов
/ 01 мая 2020

Ваш код HAML, кажется, в порядке.

Если вы хотите, чтобы ваша страница обновлялась sh через X секунд, вы можете просто использовать JavaScript:

const refreshAfter = (ms) => {
    setTimeout(()=>{
    document.location.reload(true)
  }, ms)
}

const onload = () => {
  refreshAfter(10000);
}

window.onload = onload;

Это означает, что после события страницы onload, таймер будет ждать 10 секунд, прежде чем обновлять страницу, вызывая функцию refreshAfter. Затем страница обновится sh, и через 10 секунд произойдет обновление новой страницы sh.

Если вы хотите запустить эту функцию с помощью события кнопки onclick, вы можете просто напрямую вызвать refreshAfter function.

Если вы хотите дождаться окончания анализа на стороне сервера, прежде чем обновлять страницу, возможно, вам следует использовать для этого вызовы JavaScript Ajax или WebSockets.

...