Я не так много знаю об ограничениях серверов и HTTP-запросов, в моем случае у меня есть хостинг Linux Deluxe на GoDaddy, который работает довольно гладко, но теперь мне нужно понять, почему мой сайт недоступен (ERR_CONNECTION_CLOSED
) после запуска следующего кода 2-3 раза (в первый раз, когда все идет нормально, проблема возникает, когда я повторно ссылаюсь sh на страницу 1-2):
Мой ajax вызов:
function XSGetPointer(id, tableName) {
var pointer;
var ok = false;
$.ajax({
url : TABLES_PATH + 'm-query.php?',
type: 'POST',
data: 'tableName=' + tableName,
async: false,
success: function(data) {
var results = JSON.parse(data);
for(var i=0; i<results.length; i++) {
if (results[i]['ID_id'] == id ) {
pointer = results[i];
ok = true;
}
if (i == results.length-1 && !ok) {
pointer = null;
}
}
// error
}, error: function(e) {
console.log('XSCurrentUser -> Something went wrong: ' + e.message);
}});
return pointer;
}
PHP для l oop, где вызывается сценарий JS:
for(var i=0; i<objectsArray.length; i++){
var userPointer = XSGetPointer(objectsArray[i]['PO_userPointer_Users'], 'Users');
$('#queryData').append(
'<p>'
+userPointer['ST_username']+
'<br></p>'
);
}// ./ For • Show results
for
l oop выше перебирает 57 элементов ( objectsArray's
длина). Сценарий m-query.php
просто получает все данные из файла JSON, например:
// Get JSON data
$data = file_get_contents($tableName. '.json');
$data_array = json_decode($data, true);
echo json_encode(array_values($data_array), JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
Поддержка GoDaddy подсказала мне приобрести VPS-сервер, но я не мог понять настоящую причину моя проблема, я полагаю, связана со многими HTTP-запросами, которые я отправляю на одной странице, как показано здесь:
Как вы можете видеть, мой ajax звонок останавливается после нескольких звонков, он не достигает 57, а консоль Chrome показывает:
jquery-3.4.1.min.js:2 POST https://example.com/m-query.php? net::ERR_CONNECTION_CLOSED
Я просто хотел знать, может ли это исправить переключение на VPS-сервер проблема, или если мой ajax запрос просто полностью неверен, поскольку он также async: false
(я не могу сделать его true
, потому что тогда он не получает JSON данных).