Ответ 1
setInterval
требуется функция или исполняемый код в строчном формате.
Первый вызов будет работать при вводе строки.
setInterval('$.ajax({ //Place code here })', 2000);
Использование этого синтаксиса не рекомендуется по тем же причинам, что и при использовании eval
.
setInterval
также может принимать необязательный список параметров.
Вы можете воспользоваться этим фактом и использовать что-то вроде этого:
setInterval($.ajax/*a reference to the ajax function*/,
2000, {url: 'someurl', success: onSuccess, error: onError}/*args passed to $.ajax*/
);
Обратите внимание, что это не будет работать для методов объектов, которые используют this
для определения контекста, так как значение this
будет привязано к window
. То есть следующее не будет работать:
setTimeout($('h1').css, 1000, {'color': 'red'});