シナリオ: ユーザーが投票できる Web アプリがあり、次の投票に進むとすべてが ajax で読み込まれます。ユーザーは以前の投票をクリックすることもでき、投票の詳細が ajax を使用してページに読み込まれます。私が抱えている問題は、ユーザーが以前の投票をクリックすると、最終的にページが一時的にフリーズすることです。これは 7/8 クリックあたりで発生します。最初の数回のクリックで、すべての新しい情報が非常に迅速に dom に読み込まれ、すべて問題ありません。ページがフリーズすると、20 ~ 25 秒後にフリーズが解除されます。
これはクリックを処理する js func で、js.erb ファイルを使用して新しい情報を dom にロードします。
$('.vote.complete').click(function()
{
whence = "toCompleted";
vote_id = $(this).data('vote_id');
cid = $(this).data('campaign_id');
c_title = $('#outfitPair'+cid).data('campaign_title');
u_id = $('#outfitPair'+cid).data('other_id');
//_gaq = window._gaq;
//if(_gaq != undefined){
// _gaq.push(['_trackEvent', 'ViewPreviousVote', c_title, u_id]);
//}
$('#outfitPair'+cid).find('.button.vote').removeClass('to-vote');
$(this).addClass('to-vote');
$.get('/campaigns/new_pair?whence='+whence+'&vote_id='+vote_id)
return false;
});
js.erb ファイルを調べるにはかなりの手間がかかります。多かれ少なかれ、調査できる考えられる原因の提案を探していますが、この小さな情報から正確な答えを期待することはできません.
編集:問題の手がかりを見つけたと思います。古い投票をクリックするたびに、それが行う ajax 呼び出しの数が 2 倍になるように見えます。