У меня есть веб-страница, которая устанавливает ssh-соединение с хостом Linux и выполняет скрипт. Я хотел бы долго опрашивать результат, который выполняется на хосте linux.
Я использую Xampp как локальный сервер.
Вот мой JS:
$(document).ready(function(){
$(sub).click(function(){
alert("connecting to host")
$.ajax({
type:'GET',
url:'/cgi-bin/rfc.py',
async: false ,
dataType: 'html',
cache: false,
data: $('form').serialize(),
success:function (data) {
$('#output').html(data);
}
});
}) ;
});
В этом случае я получаю результат только после того, как скрипт завершит выполнение. Я хотел бы видеть результат один раз в 15 секунд на веб-странице (опрос раз в 15 секунд). Любые предложения были бы мне очень полезны. Заранее спасибо.
вы хотите сказать "setInterval" на "url: '/ cgi-bin / rfc.py'," ??



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Базовый интервал будет примерно таким:
// Save the interval so we can stop it if needed by clearing the interval
let interval = null;
// Interval delay constant. 15s equals 15000 ms.
const DELAY = 15000;
// Render the output to the form.
const render = function( data ) {
$( '#output' ).html( data );
};
// Trigger the ajax call every DELAY seconds.
const start_interval = function() {
interval = setInterval( function() {
const data = $('form').serialize();
$.ajax({
type:'GET',
url:'/cgi-bin/rfc.py',
dataType: 'html',
cache: false,
data: data,
success: render
});
}, DELAY );
};
// Start using the interval once the webpage is loaded.
$(document).ready( start_interval );
Спасибо тебе большое за это. ! Это запускает мой сценарий, помещенный в "url", после каждой задержки. Мне нужно, чтобы скрипт запускался только один раз. а затем получать результат этого сценария после каждой задержки. Вы можете мне помочь?
Я не понимаю о чем ты. Если вы выполните вызов ajax только один раз, результат скрипта не изменится.
setInterval при вызове ajax? Или простое обновление браузера? Немного зависит от того, что еще делает страница. Но в основном вы можете использовать свою функцию ajax каждые 15 секунд вместо onclick.