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
それで、どうすればいいですか?または、イベントをバインドする他の方法はありますか? サイトのパフォーマンスに関するヒントはありますか? ありがとうございました。