非常に動的な Web アプリケーションで jsonp ロング ポーリングを実行する必要がありますが、大量のメモリ リークが発生しています。最初に、Socket.IO と jsonp トランスポートを使用して同じ結果を得てから、JQuery テスト ページをセットアップして、問題が socket.io ライブラリだけに限定されているかどうかを確認しました。驚いたことに、JQuery から jsonp ポーリングを行っても同じ結果が得られることがわかりました。
彼はクライアント側のテストコードです:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
<script type="text/javascript">
$(document).ready( function() {
var doPoll = function() {
$.ajax({
type: 'GET',
url: "http://<server-url>/jquery-jsonp/server.php",
cache: false,
async: true,
crossDomain: true,
dataType: "jsonp",
success: function (data, status) {
console.log("Received response"+data);
doPoll();
},
error: function (xhr, textStatus, errorThrown) {
// access denied
}
});
}
doPoll();
});
</script>
</head>
そして、ここにダミーのサーバー応答があります:
<?php echo $_GET['callback']."(".json_encode(array("status"=>"success")).")";
ご覧のとおり、ここでは特別なことは何もありません。これの原因と考えられる回避策について何か考えはありますか?
リクエストはクロスオリジンで実行する必要があり、IE8/9 をサポートする必要があります。どうもありがとうございました。