2011-01-29 8 views
1

通常の入力ボタン(jQueryの.button()UI)を使用してページにテキストを入力することを検討してください。jQueryタブとFirefoxのパフォーマンスに関する問題

Firefoxでは、ボタンのクリックイベントが即座にトリガーされます。

しかし、これらのオブジェクトをすべてjQueryタブに入れると、選択メニューを開くかボタンをクリックするまでに時間がかかります。

タブの有無にかかわらず、すべてが即座にトリガーされます。

Firefoxのhttp://jsbin.com/awubo3/5/editを確認してから、タブのコメントを削除してもう一度お試しください。タブを有効にすると、ボタンが少し遅れてトリガーされます。

私のページではさらに悪いことがあります。クリックをトリガするには3-4秒かかります。

この問題を修正することは可能ですか?

+0

これを試しただけで複製できません。あなたは別のマシンを試しましたか?どのFirefoxバージョンを使用していますか?他のプラグインはインストールされていますか? – Victor

答えて

0

ページにはパフォーマンスに関する問題があります。あなたがページを通過させている集中的な作業のために、javascriptエンジン実装間のパフォーマンスの差を最初に見ています。あなたがやりたいことをやるためのより効率的な方法を試してみること以外に、あなたがこれについて何かできることはあまりありません。

たとえば、コードアーキテクチャを同じにしておくことはできますが、ページの要素数を減らすことができます。ユーザーがすべてのレコードにアクセスできるようにするためのページングソリューションを実装しますが、パフォーマンスが許容されるように見える数を制限します。

これらの情報をすべて同時に表示する必要がある場合は、使用しているjquery UIエレメントの軽量版を実装することを検討してください。 'tabbing'システムを実装することは非常に軽量になります(here is an exampleは非常に少数のコード行で行われます)。あなたがスタイルの理由だけでUIボタンを使用している場合は、cssだけでどれくらい達成できるかを見てください。

0

jQueryは、すべての強みについて、物事を行うために長い道のりをとります。 $(#要素)対getElementByIDを考えてみましょう。後者はjavascriptに組み込まれています。もしあなたがそれらの多くを持っていれば、純粋なjavascriptを実行する方が速くなります。しかし、jQueryセレクターはjQuery関数呼び出しの束を処理します。また、私はjQueryもクローンをたくさん見つけました。クリックハンドラで無名関数を与えるとしましょう.jQueryはイベントを添付して処理するだけではありません。その代わりに、isString、isObject、isArray、そして最後にisFunctionの束を実行します。それが関数であることが分かれば、それを切り離し、私的な内部関数ですべてを再構築し、それをイベントに結びつけることができます。

関連する問題