1 つのメインindex.html
ページ ( あり<html><head>...
) と 、 のようなgallery.html
ページがあるサイトがありますが、コンテナーcontacts.html
のみがあり、はありません。<div>
<html><head>...
だから、何が起こるかへのindex.html
リンクをクリックするとcontacts.html
:
$('.contacts').click(function(e) {
e.preventDefault();
$('#content').load('contacts.html', function() {
.....
});
});
Q:click
onのようなイベントの JavaScript コードをどのように構造化または整理すればよいcontacts.html
ですか?
例えば:
[1] 次contacts.html
のような JavaScript コードを記述できます。
<script type='text/javascript'>
$(function() {
$('.anyClassOnContactsHtml').click(function(e) {
.....
});
});
</script>
しかし、私が推測するように、ロードするたびにcontacts.html
関数を再度読み取るため、すべてのページで50回以上のクリックイベントがあるため、サイトの速度とパフォーマンスが低下する可能性があります.
[2]index.html
デリゲートについて次のように記述できます。
<script type='text/javascript'>
$(function() {
$('#content').on('click', '.anyClassOnContactsHtml', function(e) {
.....
});
});
</script>
それは機能し、ブラウザはクリック関数を 1 回読み取りますが、100 回以上のクリック関数では 2 ~ 3 秒 (!) の遅延があるため、動作が非常に遅くなります。
より速く動作させるには、代わりに に#content
近いコンテナを作成する必要がありますが.anyClassOnContactsHtml
、できません。index.html
#container
それで、どうすればいいですか?または、イベントをバインドする他の方法はありますか? サイトのパフォーマンスに関するヒントはありますか? ありがとうございました。