JQueryライブラリで使用する文字カウンターを作成して、Twitterカウンターと同様の効果を実現しました(残りの文字はカウンターに残っています)。しかし、少なくともFireFoxはそれを処理するのに苦労していることに気づきました(他のブラウザは多少の負担を示しますが、それほど悪くはありません)。基本的に、一定のペースで入力している間、「追いつき」を再生し始め、追いつくまでブラウザを応答しなくします。Twitterのテキストボックスで同じ入力速度を試してみると、速度が低下することはありません。
私はこのボックスを監視する自動サイズ変更プラグインを持っていますが、このコードだけが速度低下を引き起こしていることを見つけるために多くの削除と変更を試みました。ですから、ある時点でブラウザが処理するには数学が多すぎるかもしれないとは思いますが、これがどれほど単純であるかに問題がある理由はよくわかりませんし、解決策も考えられません。
/* Post Saying text count */
var postSayingLimit = 450;
$('span.counter').text(postSayingLimit);
$('#post-saying').bind('keyup keypress', function() {
var postSayingUsed = $(this).val().length;
if(postSayingUsed >= postSayingLimit - postSayingLimit / 10) {
$(this).parent().find('span.counter').addClass('counter-limit');
} else {
$(this).parent().find('span.counter').removeClass('counter-limit');
}
var postSayingCount = postSayingLimit - postSayingUsed;
$(this).parent().find('span.counter').text(postSayingCount);
});
条件付きを削除し、1つのバインディングに移動し、それを使用してハード値を挿入して、ラグを継続しようとしました。たぶん、いくつかの変数をバインド関数から移動しますか?実際のカウンタープロセスも関数にしますか?