Использую Delphi XE7. Когда мой Javascript вызывает мою серверную функцию, которой требуется около 800 мс для чтения датчика и возврата данных, браузер не отвечает с момента, когда я нажимаю кнопку для вызова Javascript, пока он, наконец, не вернется. Я использую Javascript по умолчанию, сгенерированный прокси-сервером var serverMethods().getChannel(i);
для вызова моей серверной функции.
Вызов Javascript выглядит так:
var s = serverMethods().getChannel(i);
serial[i].$sensorlValue.text(s.result.fields.sensorString);
serial[i].$sensorlRealValue.text(s.result.fields.sensor);
serial[i].$sensorStatus.text(s.result.fields.sensorStatus+' '+s.result.fields.name);
serial[i].$sensorError.text(s.result.fields.sensorError);
serial[i].$AVString.text(s.result.fields.AVString);
serial[i].$AVError.text(s.result.fields.AVError);
Итак, по умолчанию в примере нет обратных вызовов или обещаний Javascript, поэтому embaracaderom каким-то образом блокирует выполнение Javascript до тех пор, пока ответ не вернется, и изменяет значения приема?
Я думаю о том, чтобы попробовать использовать вызов jQuery Ajax для URL-адреса, но есть ли другое решение?
Поскольку serverMethods генерируется из прокси, но для $ ajax мне нужно вручную установить каждый из них. А может я тут что-то не так делаю и serverMethods можно использовать без блокировки?
Спасибо.