Этот код является подозрительным по двум причинам:
$(function(){
setTimeout('ProcessClient('+data+')',Timer);
})
Во-первых, вы передаете функцию в $()
, что является сокращением для $(docmument).ready(...)
- Например, крюк «Позвони мне, когда ДОМ будет готов».Этот код не имеет ничего общего с готовым DOM.Это было бы относительно безопасно, потому что, если DOM уже готов, jQuery немедленно вызывает функцию, но в лучшем случае она не нужна.
Во-вторых, вы передаете строку в setTimeout
.Почти никогда нет веских причин для этого, это то же самое, что использовать eval
(но с задержкой), который также почти никогда не имеет смысла использовать.Вместо этого передайте ссылку на функцию.
Итак:
setTimeout(function() {
ProcessClient(data);
}, Timer);
Я ожидаю, что причина, по которой он вообще не работал, заключалась в том, что строка, в которую вы передавали setTimeout
, была ProcessClient(SomeDataTest)
вместо ProcessClient("SomeDataTest")
(обратите внимание на кавычки), и поэтому, когда строка вычислялась позже, это была синтаксическая ошибка и не выполнялась.