รู้มั้ยครับ คุณสมบัติเด่นอีกอย่างนึงของ JavaScript คืออะไร “แดกแรม client” ใช่แล้วครับ มันชอบดูดแรมผู้ใช้งานไปเรื่อย โดนไม่คืนเสียด้วย แถมการ include JavaScript ที่เขียนเยอะๆ ไฟล์ใหญ่ๆ เข้าไปยังทำให้ page load ช้าอีก นอกเหนือจาก เทคนิค การ บีบอัดไฟล์ js แล้ว วันนี้ผมจะมาแนะนำ อีกเทคนิคนึงกัน นั่นคือ…

การใช้คำสั่ง $.getScript ซึ่งคำสั่งนี้ ใช้ทำอะไรบ้างมาดูกัน

1. สามารถ ใช้เรียก javascript ให้ทำงาน หลังจากทำ Event ต่างๆ เป็นการแก้ปัญหา event listener ไปในตัว
2. สามารถ ลดโหลด ในหน้าเวบได้ โดยจะเรียกใช้เมื่อจำเป็นเท่านั้น

ในวันนี้ผมจะมาแนะนำ ประโยชน์ในข้อที่ 2 กัน เพราะข้อที่ 1 พูดมาหลายทีแล้ว เรื่องแก้ปัญหา event ไม่รับฟังหลังจากมีการ append DOM ขึ้นมาใหม่เนี่ย

test.html

  1.  
  2. <html>
  3. <head>
  4. <title>jQueryTips.com</title>
  5. <script type="text/javascript" src="jquery.js"></script>
  6. <script language="JavaScript">
  7. <!–
  8. $(function() {
  9.  
  10.     $(’.loadJs’).click(function() {
  11.         $.getScript(’script.js’ , function() {
  12.             // do something after script loaded
  13.         });
  14.         return false;
  15.     });
  16.  
  17. });
  18. //–>
  19. </script>
  20. </head>
  21. <body>
  22.  
  23. <a href="http://www.google.com" class="loadJs">Click to load JS</a>
  24. <div class="redit">Some Text</div>
  25.  
  26. </body>
  27. </html>
  28.  

script.js

  1.  
  2. $(function() {
  3.   $(’.redit’).css(’background’, ‘red’);
  4. });
  5.  

จากตัวอย่าง ไฟล์ script.js จะทำหน้าที่ เปลี่ยนสีของ bg โดยจะหา node ที่มี class = redit

ซึ่งการทำงานจะเริ่มตั้งแต่มีการกด .loadJs หลังจากที่ทำการกด จะไปเรียก script include ที่ชื่อว่า script.js โดยใช้คำสั่ง $.getScript

และ script.js จะทำงานต่อทันที เพื่อใช้งาน ณ ขณะนั้นเลย ไม่จำเป็นต้องโหลดมาไว้ทั้งหมดก่อน

เอาล่ะ วันนี้อัพเดท สั้นๆ พอหลังจากหายไปนาน ไว้จะเอา Tips เด็ดๆ มาฝาก jQueryTips Fans กันอีกนะครับ ^^

  1. One Response to “โหลดเมื่อจำเป็นต้องโหลด”

  2. ขอบคุณครับ :D ไม่เสียดายที่ cheer jQuery มาตั้งแต่ตอนยังไม่ดัง ตอนนี้เมืองนอกเป็นชื่นชอบกันมากครับ :)

    By DominixZ on Sep 15, 2008

Post a Comment