У меня проблема с непрерывным Ajax до PHP l oop. Код (ниже) работает абсолютно нормально. Однако я нахожу, что он будет работать в течение 2, 3 или более часов или по мере необходимости ... но затем будет "x минутный" перерыв, когда он не будет работать или производить какие-либо журналы ... прежде чем один раз "снова" возобновится в течение 2, 3 или более часов.
$.ajax({
async: false,
type: "POST",
url: ajaxURL,
dataType: 'json',
data: {functionname: 'conditionTrade', arguments: [c_piars, c_timeframes, usd_amount ,stop_loss, stop_loss_min, stop_loss_max]},
// post to php and check condition
success: function (data) {
if( !('error' in data) ) {
var results = data["result"];
if (results) {
$( "#tradelog" ).load( "tradelog.html" ); // <--- produce a log
var pft = c_piars+"profitloss.txt";
$( "#profit" ).load( pft );
checkCondition();
// recursion call to this same method ie. check again
}
else {
console.log(data.error);
}
var objDiv = document.getElementById("tradelog");
objDiv.scrollTop = objDiv.scrollHeight;
}},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error[refresh]: " + textStatus);
console.log(jqXHR);
checkCondition();
// recursion call to this same method ie. check again
},
});
Пожалуйста, кто-нибудь может посоветовать, почему этот l oop случайно ломается, а затем продолжает сам по себе. L oop предназначен для извлечения данных свечей (приблизительно каждые 5 секунд), а затем выполнения некоторых проверок технического анализа, прежде чем, наконец, выводить журнал того, были ли обнаружены условия TA. Код работает нормально. Однако это почти так, как если бы я физически не был на странице браузера, тогда он может случайно перестать работать на 15 минут или случайное время, прежде чем возобновится сам по себе. (Следовательно, я могу получить 2,3,4,5 часа непрерывных проверок, затем случайный отсев от 30 минут до 2 часов, прежде чем возобновить проверки в течение x часов). Что мне не хватает? Я рассмотрел использование различных браузеров, ресурсов браузера, целых rnet соединений, php тайм-аутов и c. но этот действительно царапает голову. Спасибо, если вы можете помочь.
Ps. В предыдущей версии я использовал циклический метод ajax - settimeout (5000), а не показанный «рекурсивный вызов этого же метода». Это в буквальном смысле могло бы продолжаться весь день без каких-либо выпадений, но я обнаружил, что время от времени он будет гоняться сам, не дожидаясь завершения предыдущего l oop. И поэтому я мог бы найти 2 или 3 записи журнала для одного и того же l oop. Как я могу стабилизировать этот l oop, чтобы выполнить так, как мне хотелось бы? Спасибо.