Поместив это здесь, как и в комментарии, нет подсветки синтаксиса.
Я сделал супер минимальную тестовую страницу здесь: http://www.focalstrategy.com/tests/ajax.php
Код является:
<?
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo date("F j, Y, G:i:s a");
exit();
}
?>
<!doctype html>
<html>
<head>
<title>AJAX test</title>
</head>
<body>
<h1>Ajax Test</h1>
<p>This page makes an AJAX request every 5 seconds and replaces the div below with the returned date.</p>
<div><p id="date"><?= date("F j, Y, G:i:s a") ?></p></div>
<div><p><span id="count">0</span> updates made.</p></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
var count = 0;
var getDate = function() {
$.get('/tests/ajax.php', function(data) {
$('#date').html(data);
count = count + 1;
$('#count').html(count);
});
}
setInterval(getDate, 5000);
</script>
</body>
</html>
Итак, я побежал это в течение часа, и не было никаких проблем, то IPad (полностью обновленный) прошел нормально, без каких-либо ошибок.
Я также использовал это в Chrome и записал его поведение. Это выглядит следующим образом:
(Full size)
Там какая-то странность здесь, в том, что на первых число слушателей событий остается постоянным, то через некоторое время сходит с ума ,, увеличение до 56 слушателей, прежде чем снова сбросить на 1. Число узлов DOM также многократно увеличивается, до 424. Оба имеют довольно странное поведение, учитывая простоту этого кода.
Возможно, на вашем устройстве отслеживается количество отслеживаемых узлов Dom или количество прослушивателей событий, что приводит к тому, что iPad потеряет информацию о том, что происходит, или что-то подобное.
Также стоит заметить, что использование памяти увеличивается до тех пор, пока не произойдет сбор мусора. Это то, что должно случиться, хотя, возможно, это менее эффективно на iPad.
Редактирование: я тестировал его снова на чистом профиле, многие из слушателей событий вызваны расширениями - такое же поведение происходит, но не в той же степени, а также фоновые значения: 0-1, а не 15-20
Работает ли он на Safari на компьютере? – adarshr
Вы делаете асинхронные запросы? вы устанавливаете cached = false? – FlavorScape
@adarshr да мы это –