ต้นแบบ - คู่มือฉบับย่อ

Prototype คืออะไร?

Prototype คือ JavaScript Framework ที่มีจุดมุ่งหมายเพื่อลดความยุ่งยากในการพัฒนาเว็บแอปพลิเคชันแบบไดนามิก ต้นแบบได้รับการพัฒนาโดย Sam Stephenson

Prototype เป็นไลบรารี JavaScript ซึ่งช่วยให้คุณจัดการ DOM ได้อย่างง่ายดายและสนุกสนานซึ่งปลอดภัย (ข้ามเบราว์เซอร์)

Scriptaculousและไลบรารีอื่น ๆ เช่นRicoสร้างขึ้นจากรากฐานของ Prototype เพื่อสร้างวิดเจ็ตและสิ่งอื่น ๆ สำหรับผู้ใช้ปลายทาง

Prototype -

  • ขยายองค์ประกอบ DOM และชนิดในตัวด้วยวิธีการที่มีประโยชน์

  • มีการรองรับ OOP แบบคลาสในตัวรวมถึงการสืบทอด

  • มีการสนับสนุนขั้นสูงสำหรับการจัดการเหตุการณ์

  • มีคุณสมบัติ Ajax ที่มีประสิทธิภาพ

  • ไม่ใช่กรอบการพัฒนาแอปพลิเคชันที่สมบูรณ์

  • ไม่มีวิดเจ็ตหรืออัลกอริทึมมาตรฐานหรือระบบ I / O ครบชุด

วิธีการติดตั้ง Prototype?

Prototype ถูกแจกจ่ายเป็นไฟล์เดียวที่เรียกว่า Prototype.js ทำตามขั้นตอนที่กล่าวถึงด้านล่างเพื่อตั้งค่าไลบรารีต้นแบบ -

  • ไปที่หน้าดาวน์โหลด(http://prototypejs.org/download/)เพื่อดาวน์โหลดเวอร์ชันล่าสุดในแพ็คเกจที่สะดวก

  • ตอนนี้ใส่ไฟล์ prototype.js ในไดเร็กทอรีของเว็บไซต์ของคุณเช่น / javascript

ตอนนี้คุณพร้อมที่จะใช้กรอบงานต้นแบบที่มีประสิทธิภาพในหน้าเว็บของคุณแล้ว

วิธีใช้ไลบรารีต้นแบบ

ตอนนี้คุณสามารถรวมสคริปต์ต้นแบบได้ดังนี้ -

<html>
   <head>
      <title>Prototype examples</title> 
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
   </head>
   
   <body>
      ........
   </body>
</html>

ตัวอย่าง

นี่คือตัวอย่างง่ายๆที่แสดงให้เห็นว่าคุณสามารถใช้ฟังก์ชัน $ () ของ Prototype เพื่อรับองค์ประกอบ DOM ใน JavaScript ของคุณได้อย่างไร -

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function test() {
            node = $("firstDiv");
            alert(node.innerHTML);
         }
      </script>
   </head>

   <body>
      <div id = "firstDiv">
         <p>This is first paragraph</p> 
      </div>
      
      <div id = "secondDiv">
         <p>This is another paragraph</p>
      </div>
      
      <input type = "button" value = "Test $()" onclick = "test();"/>
   </body>
</html>

เอาต์พุต

ทำไมต้องใช้บทแนะนำนี้

เอกสารประกอบที่ดีมากสำหรับ Prototype Framework มีอยู่ที่prototypejs.orgแล้วทำไมต้องอ้างถึงบทช่วยสอนนี้!

คำตอบคือเราได้รวบรวมฟังก์ชันที่ใช้บ่อยทั้งหมดไว้ด้วยกันในบทช่วยสอนนี้ ประการที่สองเราได้อธิบายวิธีการที่มีประโยชน์ทั้งหมดพร้อมกับตัวอย่างที่เหมาะสมซึ่งไม่มีในเว็บไซต์อย่างเป็นทางการ

หากคุณเป็นผู้ใช้ Prototype Framework ขั้นสูงคุณสามารถข้ามไปที่เว็บไซต์อย่างเป็นทางการได้โดยตรงมิฉะนั้นบทช่วยสอนนี้อาจเป็นการเริ่มต้นที่ดีสำหรับคุณและคุณสามารถใช้เป็นเหมือนคู่มืออ้างอิงได้

ตอนนี้เรามาดูกันว่า Prototype สามารถทำอะไรให้เราพัฒนา Dynamic Web Application ได้โดยเฉพาะ

การสนับสนุนข้ามเบราว์เซอร์

ในขณะที่ทำการเขียนโปรแกรม JavaScript จำเป็นต้องจัดการเว็บเบราว์เซอร์ที่แตกต่างกัน Prototype Library ได้รับการเขียนขึ้นเพื่อดูแลปัญหาความเข้ากันได้ทั้งหมดและคุณสามารถเขียนโปรแกรมข้ามเบราว์เซอร์ได้โดยไม่ต้องยุ่งยาก

Document Object Model

Prototype มีวิธีการช่วยเหลือที่ช่วยลดความเครียดของการเขียนโปรแกรม DOM การใช้ Prototype คุณสามารถจัดการ DOM ได้อย่างง่ายดาย

แบบฟอร์ม HTML

ด้วย Ajax กลไกการป้อนข้อมูลอื่น ๆ เช่นการลากและวางสามารถใช้เป็นส่วนหนึ่งของการสนทนาระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ ด้วยการเขียนโปรแกรม JavaScript แบบเดิมการจับอินพุตเหล่านี้และส่งผ่านไปยังเซิร์ฟเวอร์ทำได้ยาก Prototype มีชุดยูทิลิตี้สำหรับการทำงานกับรูปแบบ HTML

เหตุการณ์ JavaScript

Prototype ให้การสนับสนุนข้ามเบราว์เซอร์ที่ยอดเยี่ยมในขณะที่เข้ารหัสเหตุการณ์และยังขยายอ็อบเจ็กต์ Function เพื่อให้ง่ายต่อการทำงานกับการจัดการเหตุการณ์

ยูทิลิตี้ Ajax

คุณสมบัติที่สำคัญที่สุดของ Prototype คือรองรับ Ajax เบราว์เซอร์หลักทั้งหมดสนับสนุนเวอร์ชันของอ็อบเจ็กต์ XMLHttpRequest ที่ทำให้ Ajax เป็นไปได้ไม่ว่าจะเป็นคอมโพเนนต์ ActiveX หรือเป็นอ็อบเจ็กต์ JavaScript ดั้งเดิม

อย่างไรก็ตาม XMLHttpRequest เปิดเผยโปรโตคอล HTTP ในระดับที่ต่ำมากซึ่งทำให้นักพัฒนามีพลังมาก แต่ยังต้องการให้เธอเขียนโค้ดจำนวนมากเพื่อทำสิ่งง่ายๆ

Prototype ใช้ระบบการสืบทอดอ็อบเจ็กต์ของตัวเองเพื่อจัดเตรียมลำดับชั้นของอ็อบเจ็กต์ตัวช่วย Ajax โดยคลาสพื้นฐานทั่วไปจะถูกซับคลาสโดยตัวช่วยที่เน้นมากขึ้นซึ่งอนุญาตให้ประเภทของคำขอ Ajax ที่พบมากที่สุดสามารถเข้ารหัสในบรรทัดเดียวได้

ไลบรารีต้นแบบมาพร้อมกับอ็อบเจ็กต์และฟังก์ชันยูทิลิตี้ที่กำหนดไว้ล่วงหน้าจำนวนมาก คุณสามารถใช้ฟังก์ชันและวัตถุเหล่านั้นได้โดยตรงในการเขียนโปรแกรม JavaScript ของคุณ

วิธีการเหล่านี้เป็นหนึ่งในเสาหลักของการเข้ารหัส JavaScript ที่ใช้ต้นแบบที่มีประสิทธิภาพ ใช้เวลาศึกษาเพื่อทำความคุ้นเคยกับวิธีการต่างๆ

บทนี้ให้รายละเอียดเกี่ยวกับวิธีการที่เป็นประโยชน์เหล่านี้พร้อมตัวอย่าง

ส. วิธีการและคำอธิบาย
1. $ ()

หากมีสตริงให้ส่งคืนองค์ประกอบในเอกสารที่มี ID ที่ตรงกัน มิฉะนั้นจะส่งคืนองค์ประกอบที่ผ่าน

2. $$ ()

ใช้ตัวเลือก CSS (สตริง) ตามจำนวนที่กำหนดเองและส่งคืนอาร์เรย์ลำดับเอกสารขององค์ประกอบ DOM แบบขยายที่ตรงกับองค์ประกอบใด ๆ

3. $ ก ()

แปลงอาร์กิวเมนต์เดียวที่ได้รับเป็นวัตถุ Array

4. $ F ()

ส่งกลับค่าของตัวควบคุมฟอร์ม นี่คือนามแฝงเพื่อความสะดวกของ Form.Element.getValue

5. $ H ()

แปลงวัตถุเป็นวัตถุ Hash ที่แจกแจงได้ซึ่งคล้ายกับอาร์เรย์ที่เชื่อมโยงกัน

6. $ R ()

สร้างวัตถุ ObjectRange ใหม่

7. $ w ()

แยกสตริงออกเป็น Array โดยถือว่าช่องว่างทั้งหมดเป็นตัวคั่น

8. ลองสิ่งเหล่านี้

ยอมรับฟังก์ชันตามจำนวนที่กำหนดและส่งกลับผลลัพธ์ของฟังก์ชันแรกที่ไม่ทำให้เกิดข้อผิดพลาด

document.getElementsByClassName

วิธีการนี้จะดึงข้อมูล (และขยาย) องค์ประกอบทั้งหมดที่มีชื่อคลาส CSS ของclassName

อย่างไรก็ตามวิธีนี้ได้เลิกใช้แล้วใน Prototype เวอร์ชันล่าสุด

ธาตุวัตถุมีฟังก์ชันยูทิลิตี้ต่าง ๆ สำหรับการจัดการองค์ประกอบได้ใน DOM

นี่คือรายการฟังก์ชันยูทิลิตี้ทั้งหมดพร้อมตัวอย่าง วิธีการทั้งหมดที่กำหนดไว้ที่นี่จะถูกเพิ่มโดยอัตโนมัติในองค์ประกอบใด ๆ ที่เข้าถึงโดยใช้ฟังก์ชัน $ ()

ดังนั้นการเขียน Element.show ('firstDiv'); เหมือนกับการเขียน $ ('firstDiv'). show ();

วิธีองค์ประกอบต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าคุณมีต้นแบบอย่างน้อย 1.6 js

ส. วิธีการและคำอธิบาย
1. ทำให้สมบูรณ์ ()

เปลี่ยนองค์ประกอบให้เป็นองค์ประกอบในตำแหน่งที่แน่นอนโดยไม่ต้องเปลี่ยนตำแหน่งในเค้าโครงหน้า

2. addClassName ()

เพิ่มชื่อคลาส CSS ที่กำหนดให้กับชื่อคลาสขององค์ประกอบ

3. addMethods ()

ทำให้สามารถผสมผสานวิธีการของคุณเองกับออบเจ็กต์ Element ซึ่งคุณสามารถใช้เป็นวิธีการขยายองค์ประกอบได้ในภายหลัง

4. ที่อยู่ติดกัน ()

ค้นหาพี่น้องทั้งหมดขององค์ประกอบปัจจุบันที่ตรงกับตัวเลือกที่กำหนด

5. บรรพบุรุษ ()

รวบรวมบรรพบุรุษขององค์ประกอบทั้งหมดและส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม

6. childElements ()

รวบรวมลูกขององค์ประกอบทั้งหมดและส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม

7.

classNames()

เลิกใช้แล้ว ส่งคืนอินสแตนซ์ใหม่ของ ClassNames ซึ่งเป็นอ็อบเจ็กต์ Enumerable ที่ใช้ในการอ่านและเขียนชื่อคลาส CSS ขององค์ประกอบ

8. cleanWhitespace ()

ลบโหนดข้อความทั้งหมดขององค์ประกอบซึ่งมีเฉพาะช่องว่าง ส่งคืนองค์ประกอบ

9. clonePosition ()

โคลนตำแหน่งและ / หรือขนาดของแหล่งที่มาไปยังองค์ประกอบตามที่กำหนดโดยตัวเลือกอาร์กิวเมนต์ที่เป็นทางเลือก

10. cumulativeOffset ()

ส่งคืนค่าชดเชยขององค์ประกอบจากมุมบนซ้ายของเอกสาร

11. cumulativeScrollOffset ()

คำนวณค่าชดเชยการเลื่อนสะสมขององค์ประกอบในคอนเทนเนอร์การเลื่อนแบบซ้อนกัน

12. ลูกหลานของ ()

ตรวจสอบว่าองค์ประกอบนั้นเป็นลูกหลานของบรรพบุรุษหรือไม่

13. ลูกหลาน ()

รวบรวมลูกหลานขององค์ประกอบทั้งหมดและส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม

14. ลง()

ส่งคืนลูกหลานแรกขององค์ประกอบที่ตรงกับ cssRule หากไม่มีการระบุ cssRule จะถือว่าผู้สืบทอดทั้งหมด หากไม่มีผู้สืบทอดตรงกับเกณฑ์เหล่านี้ระบบจะส่งคืนที่ไม่ได้กำหนด

15. ว่างเปล่า ()

ทดสอบว่าองค์ประกอบว่างเปล่า (กล่าวคือมีเฉพาะช่องว่าง)

16. ขยาย ()

ขยายองค์ประกอบด้วยวิธีการทั้งหมดที่มีอยู่ใน Element.Methods และ Element.Methods.Simulated

17. ไฟ()

เริ่มเหตุการณ์ที่กำหนดเองโดยมีองค์ประกอบปัจจุบันเป็นเป้าหมาย

18. firstDescendant ()

ส่งคืนลูกคนแรกที่เป็นองค์ประกอบ สิ่งนี้ตรงข้ามกับคุณสมบัติ firstChild DOM ซึ่งจะส่งคืนโหนดใด ๆ

19. getDimensions ()

ค้นหาความกว้างและความสูงที่คำนวณได้ขององค์ประกอบและส่งกลับเป็นคู่คีย์ / ค่าของออบเจ็กต์

20.

getElementsByClassName

เลิกใช้แล้ว ดึงลูกหลานขององค์ประกอบทั้งหมดซึ่งมีคลาส CSS ของ className และส่งกลับเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม โปรดใช้ $$ ()

21.

getElementsBySelector

เลิกใช้แล้ว ใช้ตัวเลือก CSS (สตริง) ตามจำนวนที่กำหนดและส่งกลับอาร์เรย์ของลูกส่วนขยายขององค์ประกอบที่ตรงกับองค์ประกอบใด ๆ โปรดใช้ $$ ()

22. getHeight ()

ค้นหาและส่งคืนความสูงขององค์ประกอบที่คำนวณได้

23. getOffsetParent ()

ส่งคืนบรรพบุรุษที่อยู่ใกล้ที่สุดขององค์ประกอบ หากไม่พบองค์ประกอบของร่างกายจะถูกส่งกลับ

24. getStyle ()

ส่งกลับค่าคุณสมบัติ CSS ที่กำหนดขององค์ประกอบ คุณสมบัติสามารถระบุได้ในรูปแบบ CSS หรือรูปแบบอูฐ

25. getWidth ()

ค้นหาและส่งกลับความกว้างที่คำนวณขององค์ประกอบ

26. hasClassName ()

ตรวจสอบว่าองค์ประกอบมี CSS className ที่กำหนดหรือไม่

27. ซ่อน ()

ซ่อนและส่งคืนองค์ประกอบ

28. แยกแยะ()

ส่งคืนแอตทริบิวต์ id ขององค์ประกอบหากมีอยู่หรือตั้งค่าและส่งคืน id เฉพาะที่สร้างขึ้นโดยอัตโนมัติ

29.

immediateDescendants()

เลิกใช้แล้ว รวบรวมลูกหลานขององค์ประกอบทั้งหมด (เช่นลูก) และส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม โปรดใช้ childElements ()

30. แทรก()

แทรกเนื้อหาก่อนหลังที่ด้านบนหรือด้านล่างขององค์ประกอบ

31. ตรวจสอบ ()

ส่งกลับการแสดงสตริงที่มุ่งเน้นการดีบักขององค์ประกอบ

32. makeClipping ()

จำลองคุณสมบัติคลิป CSS ที่ไม่ได้รับการสนับสนุนโดยตั้งค่าโอเวอร์โฟลว์ขององค์ประกอบเป็น "ซ่อน" ส่งคืนองค์ประกอบ

33. makePositioned ()

ช่วยให้สร้าง CSS ที่มีบล็อกได้ง่ายโดยตั้งค่าตำแหน่ง CSS ขององค์ประกอบเป็น "สัมพัทธ์" หากตำแหน่งเริ่มต้นเป็น "คงที่" หรือไม่ได้กำหนด ส่งคืนองค์ประกอบ

34. การแข่งขัน()

ตรวจสอบว่าองค์ประกอบตรงกับตัวเลือก CSS ที่กำหนดหรือไม่

35. ต่อไป()

ส่งคืนพี่น้องต่อไปนี้ขององค์ประกอบที่ตรงกับ cssRule ที่กำหนด

36. ต่อไป

รวบรวมพี่น้องถัดไปขององค์ประกอบทั้งหมดและส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม

37. สังเกต()

ลงทะเบียนตัวจัดการเหตุการณ์บนองค์ประกอบและส่งคืนองค์ประกอบ

38. ตำแหน่งออฟเซ็ต ()

ส่งคืนค่าชดเชยขององค์ประกอบที่สัมพันธ์กับบรรพบุรุษที่อยู่ในตำแหน่งที่ใกล้เคียงที่สุด

39. ก่อนหน้า ()

ส่งคืนพี่น้องก่อนหน้าขององค์ประกอบที่ตรงกับ cssRule ที่กำหนด

40. ก่อนหน้า

รวบรวมพี่น้องก่อนหน้าขององค์ประกอบทั้งหมดและส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม

41. readAttribute ()

ส่งคืนค่าแอตทริบิวต์ขององค์ประกอบหรือค่าว่างหากไม่ได้ระบุแอตทริบิวต์

42. เรียกซ้ำรวบรวม ()

รวบรวมองค์ประกอบซ้ำ ๆ ที่ความสัมพันธ์ถูกระบุโดยคุณสมบัติ

43. ทำให้สัมพันธ์กัน ()

เปลี่ยนองค์ประกอบให้เป็นองค์ประกอบที่อยู่ในตำแหน่งที่ค่อนข้างเหมาะสมโดยไม่ต้องเปลี่ยนตำแหน่งในเค้าโครงหน้า

44. ลบ ()

ลบองค์ประกอบออกจากเอกสารอย่างสมบูรณ์และส่งคืน

45. removeClassName ()

ลบ CSS className ขององค์ประกอบและส่งคืนองค์ประกอบ

46. แทนที่ ()

แทนที่องค์ประกอบตามเนื้อหาของอาร์กิวเมนต์ html และส่งคืนองค์ประกอบที่ถูกลบ

47. scrollTo ()

เลื่อนหน้าต่างเพื่อให้องค์ประกอบนั้นปรากฏที่ด้านบนของวิวพอร์ต ส่งคืนองค์ประกอบ

48. เลือก()

ใช้ตัวเลือก CSS (สตริง) ตามจำนวนที่กำหนดและส่งกลับอาร์เรย์ขององค์ประกอบที่สืบทอดเพิ่มเติมที่ตรงกับองค์ประกอบใด ๆ

49. setOpacity ()

ตั้งค่าความทึบของภาพขององค์ประกอบในขณะที่ทำงานกับความไม่สอดคล้องกันในเบราว์เซอร์ต่างๆ

50. setStyle ()

แก้ไขคุณสมบัติสไตล์ CSS ขององค์ประกอบ

51. แสดง()

แสดงและส่งคืนองค์ประกอบ

52. พี่น้อง ()

รวบรวมพี่น้องขององค์ประกอบทั้งหมดและส่งคืนเป็นอาร์เรย์ขององค์ประกอบเพิ่มเติม

53. หยุดการสังเกต ()

Unregisters handler และส่งคืนองค์ประกอบ

54. สลับ ()

สลับการมองเห็นองค์ประกอบ

55. toggleClassName ()

สลับ CSS className ขององค์ประกอบและส่งคืนองค์ประกอบ

56. เลิกทำคลิป ()

ตั้งค่าคุณสมบัติ CSS overflow ขององค์ประกอบกลับไปเป็นค่าที่มีก่อนที่จะใช้ Element.makeClipping () ส่งคืนองค์ประกอบ

57. เลิกทำตำแหน่ง ()

ตั้งค่าองค์ประกอบกลับไปเป็นสถานะก่อนที่จะใช้ Element.makePositioned ส่งคืนองค์ประกอบ

58. ขึ้น ()

ส่งคืนบรรพบุรุษแรกขององค์ประกอบที่ตรงกับ cssRule ที่กำหนด

59. ปรับปรุง ()

แทนที่เนื้อหาขององค์ประกอบด้วยอาร์กิวเมนต์ newContent ที่ระบุและส่งคืนองค์ประกอบ

60. วิวพอร์ตออฟเซ็ต ()

ส่งคืนพิกัด X / Y ขององค์ประกอบที่สัมพันธ์กับวิวพอร์ต

61. มองเห็นได้ ()

ส่งคืนบูลีนที่ระบุว่าสามารถมองเห็นองค์ประกอบได้หรือไม่

62. ห่อ ()

ห่อองค์ประกอบไว้ในอีกองค์ประกอบหนึ่งจากนั้นส่งกลับกระดาษห่อหุ้ม

63. writeAttribute ()

เพิ่มระบุหรือลบแอตทริบิวต์ที่ส่งผ่านเป็นแฮชหรือคู่ชื่อ / ค่า

Prototype ขยายหมายเลข JavaScript ดั้งเดิมเพื่อให้ -

  • ความเข้ากันได้ของ ObjectRange ผ่าน Number # succ

  • ลูปตัวเลขเหมือนรูบี้ที่มี Number # ครั้ง

  • วิธีการยูทิลิตี้ง่ายๆเช่น Number # toColorPart และ Number # toPaddedString

นี่คือรายการฟังก์ชันทั้งหมดพร้อมตัวอย่างการจัดการกับ Numbers

วิธีหมายเลขต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าคุณมี Prototype.js เวอร์ชัน 1.6

ส. วิธีการและคำอธิบาย
1. เอบีเอส ()

ส่งคืนค่าสัมบูรณ์ของตัวเลข

2. เพดาน ()

ส่งคืนจำนวนเต็มที่น้อยที่สุดที่มากกว่าหรือเท่ากับจำนวน

3. ชั้น ()

ส่งคืนจำนวนเต็มที่มากที่สุดน้อยกว่าหรือเท่ากับจำนวน

4. รอบ()

ปัดเศษตัวเลขให้เป็นจำนวนเต็มที่ใกล้เคียงที่สุด

5. ซัค ()

ส่งกลับตัวตายตัวแทนของ Number ปัจจุบันตามที่กำหนดโดย current + 1 ใช้เพื่อทำให้ตัวเลขเข้ากันได้กับ ObjectRange

6. ครั้ง ()

ห่อหุ้มลูป [0..n] ปกติแบบรูบี้

7. toColorPart ()

สร้างการแสดงตัวเลขฐานสิบหก 2 หลัก (ซึ่งถือว่าอยู่ในช่วง [0..255]) มีประโยชน์สำหรับการเขียนสตริงสี CSS

8. toJSON ()

ส่งคืนสตริง JSON

9. toPaddedString ()

แปลงตัวเลขเป็นสตริงที่มี 0s เพื่อให้ความยาวของสตริงเท่ากับความยาวเป็นอย่างน้อย

Prototype ปรับปรุงวัตถุ String ด้วยชุดวิธีการที่มีประโยชน์ตั้งแต่เรื่องเล็กน้อยไปจนถึงซับซ้อน

นี่คือรายการฟังก์ชั่นทั้งหมดพร้อมตัวอย่างที่เกี่ยวข้องกับ String

วิธีการสตริงต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าคุณมี Prototype.js เวอร์ชัน 1.6

ส. วิธีการและคำอธิบาย
1. ว่าง ()

ตรวจสอบว่าสตริงเป็น "ว่าง" หมายถึงว่างหรือมีเฉพาะช่องว่าง

2. อูฐ ()

แปลงสตริงที่คั่นด้วยเครื่องหมายขีดกลางให้เทียบเท่ากับ camelCase ตัวอย่างเช่น "foo-bar" จะถูกแปลงเป็น "fooBar"

3. ใช้ประโยชน์ ()

อักษรตัวแรกของสตริงเป็นตัวพิมพ์ใหญ่และลดขนาดตัวอักษรอื่น ๆ ทั้งหมด

4. dasherize ()

แทนที่ทุกอินสแตนซ์ของอักขระขีดล่าง ("_") ด้วยเครื่องหมายขีด ("-")

5. ว่างเปล่า ()

ตรวจสอบว่าสตริงว่างหรือไม่

6. ลงท้ายด้วย()

ตรวจสอบว่าสตริงลงท้ายด้วยสตริงย่อยหรือไม่

7. หลบหนี HTML ()

แปลงอักขระพิเศษ HTML ให้เทียบเท่าเอนทิตี

8. evalJSON ()

ประเมิน JSON ในสตริงและส่งคืนอ็อบเจ็กต์ผลลัพธ์

9. evalScripts ()

ประเมินเนื้อหาของบล็อกสคริปต์ใด ๆ ที่มีอยู่ในสตริง ส่งคืนอาร์เรย์ที่มีค่าที่ส่งคืนโดยแต่ละสคริปต์

10. extractScripts ()

แยกเนื้อหาของบล็อกสคริปต์ใด ๆ ที่มีอยู่ในสตริงและส่งคืนเป็นอาร์เรย์ของสตริง

11. gsub ()

ส่งคืนสตริงที่เกิดขึ้นทุกครั้งของรูปแบบที่กำหนดแทนที่ด้วยสตริงปกติค่าที่ส่งคืนของฟังก์ชันหรือสตริงเทมเพลต

12. รวม ()

ตรวจสอบว่าสตริงมีสตริงย่อยหรือไม่

13. ตรวจสอบ ()

ส่งคืนสตริงเวอร์ชันที่เน้นการดีบัก

14. สอดแทรก ()

ถือว่าสตริงเป็นเทมเพลตและเติมด้วยคุณสมบัติของวัตถุ

15. isJSON ()

ตรวจสอบว่าสตริงเป็น JSON ที่ถูกต้องหรือไม่โดยใช้นิพจน์ทั่วไป วิธีการรักษาความปลอดภัยนี้เรียกว่าเป็นการภายใน

16. parseQuery ()

แยกวิเคราะห์สตริงแบบสอบถามที่เหมือน URI และส่งคืนอ็อบเจ็กต์ที่ประกอบด้วยคู่พารามิเตอร์ / ค่า

17. สแกน ()

อนุญาตให้ทำซ้ำทุกครั้งที่เกิดขึ้นของรูปแบบที่กำหนด

18. เริ่มต้นด้วย()

ตรวจสอบว่าสตริงเริ่มต้นด้วยสตริงย่อยหรือไม่

19. แถบ ()

ตัดช่องว่างที่นำหน้าและต่อท้ายทั้งหมดออกจากสตริง

20. สตริปสคริปต์ ()

ขีดเส้นสตริงของสิ่งที่ดูเหมือนบล็อกสคริปต์ HTML

21. แท็ก ()

ขีดเส้นสตริงของแท็ก HTML ใด ๆ

22. ย่อย ()

ส่งคืนสตริงที่มีการนับจำนวนครั้งแรกของรูปแบบแทนที่ด้วยสตริงปกติค่าที่ส่งคืนของฟังก์ชันหรือสตริงเทมเพลต

23. ซัค ()

ใช้ภายในโดย ObjectRange แปลงอักขระสุดท้ายของสตริงเป็นอักขระต่อไปนี้ในตัวอักษร Unicode

24. ครั้ง ()

เชื่อมต่อเวลาในการนับสตริง

25. toArray ()

แยกสตริงอักขระทีละอักขระและส่งคืนอาร์เรย์พร้อมผลลัพธ์

26. toJSON ()

ส่งคืนสตริง JSON

27. toQueryParams ()

แยกวิเคราะห์สตริงแบบสอบถามที่เหมือน URI และส่งคืนอ็อบเจ็กต์ที่ประกอบด้วยคู่พารามิเตอร์ / ค่า

28. ตัด()

ตัดสตริงตามความยาวที่กำหนดและต่อท้ายคำต่อท้าย (ระบุว่าเป็นเพียงข้อความที่ตัดตอนมา)

29. ขีดล่าง ()

แปลงสตริงอูฐเป็นชุดคำที่คั่นด้วยเครื่องหมายขีดล่าง ("_")

30. unescapeHTML ()

แถบแท็กและแปลงรูปแบบเอนทิตีของอักขระ HTML พิเศษให้เป็นรูปแบบปกติ

31. ตัวกรอง JSON ()

แถบตัวคั่นความคิดเห็นรอบ ๆ การตอบสนอง Ajax JSON หรือ JavaScript วิธีการรักษาความปลอดภัยนี้เรียกว่าเป็นการภายใน

Prototype ขยายอาร์เรย์ JavaScript ดั้งเดิมทั้งหมดด้วยวิธีการที่มีประสิทธิภาพเพียงไม่กี่วิธี

ทำได้สองวิธี -

  • มันผสมในโมดูล Enumerable ซึ่งนำวิธีการมากมายมาให้แล้ว

  • จะเพิ่มวิธีการพิเศษบางอย่างซึ่งมีการบันทึกไว้ในส่วนนี้

ใช้ Iterators

การสนับสนุนที่สำคัญอย่างหนึ่งของ Prototype คือคุณสามารถใช้ java เช่น iterator ใน JavaScript ดูความแตกต่างด้านล่าง -

วิธีเขียนแบบดั้งเดิมก for วน -

for (var index = 0; index < myArray.length; ++index) {
   var item = myArray[index];
   // Your code working on item here...
}

ตอนนี้ถ้าคุณใช้ Prototype คุณสามารถแทนที่โค้ดด้านบนได้ดังนี้ -

myArray.each(function(item) {
   // Your code working on item here...
});

นี่คือรายการฟังก์ชั่นทั้งหมดพร้อมตัวอย่างการจัดการกับ Array

วิธีการต้นแบบอาร์เรย์

NOTE - ตรวจสอบให้แน่ใจว่าคุณมี Prototype.js เวอร์ชัน 1.6

ส. วิธีการและคำอธิบาย
1. ชัดเจน()

ล้างอาร์เรย์ (ทำให้ว่างเปล่า)

2. โคลน ()

ส่งคืนอาร์เรย์ที่ซ้ำกันโดยปล่อยให้อาร์เรย์เดิมไม่เสียหาย

3. กะทัดรัด ()

ส่งคืนอาร์เรย์เวอร์ชันใหม่โดยไม่มีค่า null / ไม่ได้กำหนด

4. แต่ละ()

วนซ้ำบนอาร์เรย์โดยเรียงลำดับดัชนีตัวเลขจากน้อยไปมาก

5. แรก ()

ส่งคืนรายการแรกในอาร์เรย์หรือไม่ได้กำหนดไว้หากอาร์เรย์ว่างเปล่า

6. เรียบ()

ส่งคืนอาร์เรย์เวอร์ชัน "แบน" (มิติเดียว)

7. จาก()

โคลนอาร์เรย์ที่มีอยู่หรือสร้างอาร์เรย์ใหม่จากคอลเลกชันที่เหมือนอาร์เรย์

8. indexOf ()

ส่งคืนตำแหน่งของการเกิดครั้งแรกของอาร์กิวเมนต์ภายในอาร์เรย์

9. ตรวจสอบ ()

ส่งคืนการแสดงสตริงที่เน้นการแก้จุดบกพร่องของอาร์เรย์

10. ล่าสุด()

ส่งคืนรายการสุดท้ายในอาร์เรย์หรือไม่ได้กำหนดว่าอาร์เรย์ว่างเปล่า

11. ลด()

ลดอาร์เรย์: อาร์เรย์องค์ประกอบเดียวจะเปลี่ยนเป็นองค์ประกอบเฉพาะในขณะที่อาร์เรย์หลายองค์ประกอบจะถูกส่งกลับโดยไม่มีการแตะต้อง

12. ย้อนกลับ ()

ส่งคืนเวอร์ชันย้อนกลับของอาร์เรย์ ตามค่าเริ่มต้นจะย้อนกลับของเดิมโดยตรง ถ้าอินไลน์ถูกตั้งค่าเป็นเท็จให้ใช้โคลนของอาร์เรย์เดิม

13. ขนาด()

ส่งคืนขนาดของอาร์เรย์

14. toArray ()

นี่เป็นเพียงการเพิ่มประสิทธิภาพแบบโลคัลของ Mixed-in toArray จาก Enumerable

15. toJSON ()

ส่งคืนสตริง JSON

16. uniq ()

สร้างอาร์เรย์เวอร์ชันที่ไม่ซ้ำกัน หากไม่พบรายการที่ซ้ำกันอาร์เรย์เดิมจะถูกส่งกลับ

17. ไม่มี ()

สร้างอาร์เรย์เวอร์ชันใหม่ที่ไม่มีค่าใด ๆ ที่ระบุ

แฮชสามารถคิดได้ว่าเป็นอาร์เรย์ที่เชื่อมโยงกับคีย์ที่ไม่ซ้ำกับค่า ข้อแตกต่างเพียงอย่างเดียวคือคุณสามารถใช้สตริงใดก็ได้เป็นดัชนีแทนที่จะใช้ตัวเลขเป็นดัชนี

การสร้างแฮช

มีสองวิธีในการสร้างอินสแตนซ์แฮช -

  • การใช้คำ JavaScript ใหม่
  • ฟังก์ชั่นการใช้ต้นแบบยูทิลิตี้$ H

ในการสร้างแฮชว่างคุณสามารถเรียกใช้เมธอดตัวสร้างใด ๆ โดยไม่มีข้อโต้แย้งได้เช่นกัน

ต่อไปนี้เป็นตัวอย่างที่แสดงวิธีการสร้างแฮชการตั้งค่าและการรับค่าด้วยวิธีง่ายๆ -

// Creating Hash
var myhash = new Hash();
var yourhash = new Hash( {fruit: 'apple'} );
var hishash = $H( {drink: 'pepsi'} );

// Set values in terms of key and values.
myhash.set('name', 'Bob');

// Get value of key 'name' as follows.
myhash.get('name');
yourhash.get('fruit');
hishash.get('drink');

// Unset a key & value
myhash.unset('name');
yourhash.unset('fruit');
hishash.unset('drink');

Prototype มีวิธีการมากมายในการประเมิน Hash อย่างง่ายดาย บทช่วยสอนนี้จะอธิบายทุกวิธีโดยละเอียดพร้อมตัวอย่างที่เหมาะสม

นี่คือรายการวิธีการทั้งหมดที่เกี่ยวข้องกับ Hash

วิธีแฮชต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าอย่างน้อยต้องมีต้นแบบเวอร์ชัน 1.6 js

ส. วิธีการและคำอธิบาย
1. โคลน ()

ส่งคืนโคลนของแฮช

2. แต่ละ()

วนซ้ำคู่ชื่อ / ค่าในแฮช

3. รับ ()

ส่งคืนค่าคุณสมบัติของคีย์แฮช

4. ตรวจสอบ ()

ส่งกลับการแสดงสตริงที่เน้นการแก้ปัญหาของแฮช

5. คีย์ ()

จัดเตรียมอาร์เรย์ของคีย์ (นั่นคือชื่อคุณสมบัติ) สำหรับแฮช

6. ผสาน()

ผสานวัตถุเข้ากับแฮชและส่งกลับผลลัพธ์ของการผสานนั้น

7. ลบ ()

ลบคีย์ออกจากแฮชและส่งคืนค่า วิธีนี้เลิกใช้แล้วในเวอร์ชัน 1.6

8. ชุด ()

ตั้งค่าคุณสมบัติของคีย์แฮชเป็นค่าและส่งคืนค่า

9. toJSON ()

ส่งคืนสตริง JSON

10. toObject ()

ส่งคืนอ็อบเจ็กต์วานิลลาโคลน

11. toQueryString ()

เปลี่ยนแฮชเป็นการแสดงสตริงการสืบค้นที่เข้ารหัส URL

12. ยกเลิกการตั้งค่า ()

ลบคุณสมบัติของคีย์แฮชและส่งคืนค่า

13. ปรับปรุง ()

อัพเดตแฮชด้วยคู่คีย์ / ค่าของออบเจ็กต์ แฮชเดิมจะถูกแก้ไข

14. ค่า ()

รวบรวมค่าของแฮชและส่งกลับค่าในอาร์เรย์

วัตถุจะถูกใช้โดยต้นแบบเป็น namespace และจะเรียกฟังก์ชั่นที่เกี่ยวข้องกับการใช้วัตถุวัตถุ ซึ่งใช้ในสองวิธีต่อไปนี้ -

  • หากคุณเป็นนักพัฒนาที่เรียบง่ายแล้วคุณสามารถใช้ฟังก์ชั่นที่มีอยู่เช่นการตรวจสอบหรือโคลน

  • หากคุณเป็นคนหนึ่งที่มีความประสงค์ในการสร้างวัตถุของตัวเองเหมือนต้นแบบไม่หรือสำรวจวัตถุราวกับว่าพวกเขา hashes จะหันไปขยาย , คีย์และค่า

วิธีการสร้างวัตถุต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าอย่างน้อยต้องมีต้นแบบเวอร์ชัน 1.6 js

ส. วิธีการและคำอธิบาย
1. โคลน ()

โคลนวัตถุที่ส่งผ่านโดยใช้สำเนาตื้น (คัดลอกคุณสมบัติของต้นฉบับทั้งหมดไปยังผลลัพธ์)

2. ขยาย ()

คัดลอกคุณสมบัติทั้งหมดจากต้นทางไปยังวัตถุปลายทาง

3. ตรวจสอบ ()

ส่งคืนการแสดงสตริงที่เน้นการแก้จุดบกพร่องของวัตถุ

4. isArray ()

ส่งกลับค่าจริงถ้า obj เป็นอาร์เรย์มิฉะนั้นจะเป็นเท็จ

5. isElement ()

ส่งคืนจริงถ้า obj เป็นโหนด DOM ประเภท 1 มิฉะนั้นจะเป็นเท็จ

6. isFunction ()

ส่งคืนจริงถ้า obj เป็นฟังก์ชัน type มิฉะนั้นจะเป็นเท็จ

7. isHash ()

ส่งคืนจริงถ้า obj เป็นอินสแตนซ์ของคลาส Hash มิฉะนั้นจะเป็นเท็จ

8. isNumber ()

ส่งคืนค่าจริงหาก obj เป็นชนิดจำนวนมิฉะนั้นจะเป็นเท็จ

9. isString ()

ส่งคืนจริงถ้า obj เป็นสตริงชนิดมิฉะนั้นจะเป็นเท็จ

10. isUndefined ()

ส่งคืนจริงหาก obj เป็นประเภทที่ไม่ได้กำหนดเป็นเท็จเป็นอย่างอื่น

11. คีย์ ()

ถือว่าออบเจ็กต์ใด ๆ เป็น Hash และดึงรายการชื่อคุณสมบัติ

12. toHTML ()

ส่งคืนค่าที่ส่งคืนของเมธอด toHTML ของ obj หากมีอยู่มิฉะนั้นจะรัน obj ผ่าน String.interpret

13. toJSON ()

ส่งคืนสตริง JSON

14. toQueryString ()

เปลี่ยนออบเจ็กต์เป็นการแสดงสตริงการสืบค้นที่เข้ารหัส URL

15. ค่า ()

ถือว่าวัตถุใด ๆ เป็น Hash และดึงรายการค่าคุณสมบัติ

เทมเพลตใช้สำหรับการจัดรูปแบบกลุ่มของวัตถุที่คล้ายกันและสร้างเอาต์พุตที่จัดรูปแบบสำหรับวัตถุเหล่านี้

Prototype มีคลาสTemplateซึ่งมีสองวิธี -

  • Template()- นี่คือเมธอด constructor ซึ่งใช้เพื่อสร้างออบเจ็กต์เทมเพลตและเรียกเมธอดeval ()เพื่อใช้เทมเพลต

  • evaluate() - วิธีนี้ใช้เพื่อใช้เทมเพลตเพื่อจัดรูปแบบวัตถุ

มีสามขั้นตอนที่เกี่ยวข้องในการสร้างเอาต์พุตที่จัดรูปแบบ

  • Create a template- สิ่งนี้เกี่ยวข้องกับการสร้างข้อความที่จัดรูปแบบไว้ล่วงหน้า ข้อความนี้มีเนื้อหาที่จัดรูปแบบพร้อมด้วย#{fieldName}ค่า เหล่านี้#{fieldName}ค่าจะถูกแทนที่ด้วยค่าจริงเมื่อวิธีการประเมิน ()จะถูกเรียกด้วยค่าจริง

  • Defining actual values- สิ่งนี้เกี่ยวข้องกับการสร้างค่าที่แท้จริงในรูปแบบของคีย์และค่า คีย์เหล่านี้จะถูกแมปในเทมเพลตและจะถูกแทนที่ด้วยค่าที่เกี่ยวข้อง

  • Mapping Keys and replacing Values- นี่เป็นขั้นตอนสุดท้ายที่จะเรียกeval ()และคีย์ทั้งหมดที่มีอยู่ในออบเจ็กต์ที่จัดรูปแบบจะถูกแทนที่ด้วยค่าที่กำหนด

ตัวอย่าง 1

ขั้นตอนที่ 1

สร้างเทมเพลต

var myTemplate = new Template('The \ TV show #{title} was directed by #{author}.');

ขั้นตอนที่ 2

เตรียมชุดค่าของเราซึ่งจะถูกส่งผ่านไปยังออบเจ็กต์ด้านบนเพื่อให้มีเอาต์พุตที่จัดรูปแบบ

var record1 = {title: 'Metrix', author:'Arun Pandey'};
var record2 = {title: 'Junoon', author:'Manusha'};
var record3 = {title: 'Red Moon', author:'Paul, John'};
var record4 = {title: 'Henai', author:'Robert'};
var records = [record1, record2, record3, record4 ];

ขั้นตอนที่ 3

ขั้นตอนสุดท้ายคือการเติมค่าทั้งหมดในเทมเพลตและสร้างผลลัพธ์สุดท้ายดังนี้ -

records.each( function(conv) {
   alert( "Formatted Output : " + myTemplate.evaluate(conv) );
});

ลองรวบรวมทั้งสามขั้นตอนนี้เข้าด้วยกัน -

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function showResult() {
            //  Create template with formatted content and placeholders.
            var myTemplate = new Template('The \ TV show #{title} was directed by #{author}.');
   
            // Create hashes with the required values for placeholders
            var record1 = {title: 'Metrix', author:'Arun Pandey'};
            var record2 = {title: 'Junoon', author:'Manusha'};
            var record3 = {title: 'Red Moon', author:'Paul, John'};
            var record4 = {title: 'Henai', author:'Robert'};
            var records = [record1, record2, record3, record4 ];

            // Now apply template to produce desired formatted output
            records.each( function(conv) {
               alert( "Formatted Output : " + myTemplate.evaluate(conv) );
            });
         }
      </script>
   </head>

   <body>
      <p>Click the button to see the result.</p>
      <br />
      <br />
      <input type = "button" value = "Result" onclick = "showResult();"/>
   </body>
</html>

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

คลาส Enumerable มีวิธีการที่เป็นประโยชน์มากมายสำหรับการแจงนับ การแจงนับเป็นวัตถุที่ทำหน้าที่รวบรวมค่า

การแจงนับวิธีการส่วนใหญ่ถูกนำมาใช้เพื่อระบุอาร์เรย์และhashes ยังมีวัตถุอื่น ๆ เช่นObjectRangeและวัตถุที่เกี่ยวข้องกับ DOM- หรือ AJAX ต่างๆที่คุณสามารถใช้วิธีการแจงนับได้

พารามิเตอร์บริบท

ทุกวิธีของ Enumerable ที่ใช้ตัววนซ้ำจะใช้วัตถุบริบทเป็นพารามิเตอร์ถัดไป (ทางเลือก) วัตถุบริบทคือสิ่งที่ตัววนซ้ำจะถูกผูกไว้ดังนั้นthis คำหลักที่อยู่ภายในจะชี้ไปที่วัตถุ

var myObject = {};

['foo', 'bar', 'baz'].each(function(name, index) {
   this[name] = index;
}, myObject); // we have specified the context

myObject;

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

เอาต์พุต

{ foo: 0, bar: 1, baz: 2}

ใช้อย่างมีประสิทธิภาพ

  • เมื่อคุณต้องการเรียกใช้เมธอดเดียวกันกับองค์ประกอบทั้งหมดให้ใช้วิธีการเรียกใช้ ()

  • เมื่อคุณต้องการดึงคุณสมบัติเดียวกันในองค์ประกอบทั้งหมดให้ใช้วิธีการถอน ()

  • findall / เลือกวิธีการดึงองค์ประกอบทั้งหมดที่ตรงกับคำกริยาที่กำหนด ในทางกลับกันวิธีการปฏิเสธ ()จะดึงองค์ประกอบทั้งหมดที่ไม่ตรงกับเพรดิเคต ในกรณีเฉพาะที่คุณต้องการทั้งสองชุดคุณสามารถหลีกเลี่ยงการวนซ้ำสองครั้งได้: เพียงแค่ใช้เมธอดpartition ()

นี่คือรายการวิธีการทั้งหมดที่เกี่ยวข้องกับ Enumerable

วิธีการนับต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าคุณมีต้นแบบเวอร์ชัน 1.6 เป็นอย่างน้อย js

ส. วิธีการและคำอธิบาย
1. ทั้งหมด()

พิจารณาว่าองค์ประกอบทั้งหมดเทียบเท่าบูลีนเป็นจริงไม่ว่าโดยตรงหรือผ่านการคำนวณโดยตัววนซ้ำที่ให้มา

2. ใด ๆ ()

พิจารณาว่าอย่างน้อยหนึ่งองค์ประกอบเทียบเท่ากับบูลีนเป็นจริงไม่ว่าโดยตรงหรือผ่านการคำนวณโดยตัววนซ้ำที่ให้มา

3. เก็บ()

ส่งคืนผลลัพธ์ของการใช้ตัววนซ้ำกับแต่ละองค์ประกอบ นามแฝงเป็นแผนที่ ()

4. ตรวจจับ ()

ค้นหาองค์ประกอบแรกที่ตัววนซ้ำส่งคืนค่าจริง นามแฝงด้วยวิธี find ()

5. แต่ละ()

ช่วยให้คุณวนซ้ำองค์ประกอบทั้งหมดในรูปแบบทั่วไปจากนั้นคืนค่า Enumerable ซึ่งจะช่วยให้สามารถโทรแบบลูกโซ่ได้

6. แต่ละชิ้น ()

จัดกลุ่มรายการเป็นชิ้น ๆ ตามขนาดที่กำหนดโดยชิ้นสุดท้ายอาจมีขนาดเล็กกว่า

7. รายการ()

นามแฝงสำหรับเมธอด toArray ทั่วไป

8. หา()

ค้นหาองค์ประกอบแรกที่ตัววนซ้ำส่งคืนค่าจริง นามแฝงสะดวกสำหรับการตรวจจับ ()

9. ค้นหาทั้งหมด ()

ส่งคืนองค์ประกอบทั้งหมดที่ตัววนซ้ำส่งคืนจริง นามแฝงเป็นเลือก ()

10. grep ()

ส่งคืนองค์ประกอบทั้งหมดที่ตรงกับตัวกรอง หากมีการจัดเตรียมตัววนซ้ำจะใช้เพื่อสร้างค่าที่ส่งคืนสำหรับแต่ละองค์ประกอบที่เลือก

11. inGroupsOf ()

จัดกลุ่มรายการเป็นชิ้นขนาดคงที่โดยใช้ค่าเฉพาะเพื่อเติมเต็มชิ้นสุดท้ายหากจำเป็น

12. รวม ()

พิจารณาว่าวัตถุที่ระบุอยู่ใน Enumerable หรือไม่โดยอาศัยตัวดำเนินการเปรียบเทียบ == นามแฝงเป็นสมาชิก ()

13. ฉีด()

สร้างมูลค่าผลลัพธ์เพิ่มขึ้นตามผลลัพธ์ที่ต่อเนื่องของตัววนซ้ำ

14. เรียก ()

การเพิ่มประสิทธิภาพสำหรับกรณีการใช้งานทั่วไปของแต่ละ () หรือ collect (): การเรียกใช้เมธอดเดียวกันโดยมีอาร์กิวเมนต์ที่เป็นไปได้เหมือนกันสำหรับองค์ประกอบทั้งหมด

15. แผนที่()

ส่งคืนผลลัพธ์ของการใช้ตัววนซ้ำกับแต่ละองค์ประกอบ นามแฝงสะดวกในการรวบรวม ()

16. สูงสุด ()

ส่งคืนองค์ประกอบสูงสุด (หรือการคำนวณตามองค์ประกอบ) หรือไม่ได้กำหนดไว้หากการแจงนับว่างเปล่า องค์ประกอบจะถูกเปรียบเทียบโดยตรงหรือโดยใช้ตัววนซ้ำก่อนและเปรียบเทียบค่าที่ส่งคืน

17. สมาชิก()

พิจารณาว่าวัตถุที่ระบุอยู่ใน Enumerable หรือไม่โดยอาศัยตัวดำเนินการเปรียบเทียบ == นามแฝงสะดวกสำหรับ include ()

18. นาที()

ส่งคืนองค์ประกอบขั้นต่ำ (หรือการคำนวณตามองค์ประกอบ) หรือไม่ได้กำหนดหากการแจงนับว่างเปล่า องค์ประกอบจะถูกเปรียบเทียบโดยตรงหรือโดยใช้ตัววนซ้ำก่อนและเปรียบเทียบค่าที่ส่งคืน

19. พาร์ติชัน ()

แบ่งองค์ประกอบออกเป็นสองกลุ่ม: กลุ่มที่ถือว่าเป็นจริงและกลุ่มที่ถือว่าเป็นเท็จ

20. ถอน ()

การเพิ่มประสิทธิภาพสำหรับกรณีการใช้งานทั่วไปของการรวบรวม (): การดึงคุณสมบัติเดียวกันสำหรับองค์ประกอบทั้งหมด ส่งคืนค่าคุณสมบัติ

21. ปฏิเสธ()

ส่งคืนองค์ประกอบทั้งหมดที่ตัววนซ้ำส่งคืนเป็นเท็จ

22. เลือก()

นามแฝงสำหรับวิธี findAll ()

23. ขนาด()

ส่งคืนขนาดของการแจงนับ

24. sortBy ()

ให้มุมมองที่จัดเรียงแบบกำหนดเองขององค์ประกอบตามเกณฑ์ที่คำนวณสำหรับแต่ละองค์ประกอบโดยตัววนซ้ำ

25. toArray ()

ส่งกลับการแสดงอาร์เรย์ของการแจงนับ นามแฝงเป็นรายการ ()

26. ซิป ()

รูดซิปเข้าด้วยกัน (ลองนึกถึงซิปบนกางเกงขายาว) 2+ ลำดับโดยให้มีสิ่งทอมากมาย ทูเปิลแต่ละตัวมีหนึ่งค่าต่อลำดับดั้งเดิม

การจัดการเหตุการณ์เป็นหนึ่งในความท้าทายที่ยิ่งใหญ่ที่สุดในการบรรลุการเขียนสคริปต์ข้ามเบราว์เซอร์ ทุกเบราว์เซอร์มีแนวทางในการจัดการจังหวะสำคัญที่แตกต่างกัน

Prototype Framework จัดการปัญหาความเข้ากันได้ข้ามเบราว์เซอร์และช่วยให้คุณปลอดจากปัญหาทั้งหมดที่เกี่ยวข้องกับการจัดการเหตุการณ์

Prototype Framework จัดเตรียมเนมสเปซเหตุการณ์ซึ่งเต็มไปด้วยเมธอดซึ่งทั้งหมดใช้อ็อบเจ็กต์เหตุการณ์ปัจจุบันเป็นอาร์กิวเมนต์และให้ข้อมูลที่คุณร้องขออย่างมีความสุขในเบราว์เซอร์หลักทั้งหมด

เนมสเปซของเหตุการณ์ยังมีรายการรหัสคีย์มาตรฐานที่คุณสามารถใช้กับเหตุการณ์ที่เกี่ยวข้องกับแป้นพิมพ์ ค่าคงที่ต่อไปนี้กำหนดไว้ในเนมสเปซ -

ส. คีย์คงที่และคำอธิบาย
1.

KEY_BACKSPACE

แสดงคีย์ช่องว่างด้านหลัง

2.

KEY_TAB

แสดงแป้นแท็บ

3.

KEY_RETURN

แสดงคีย์ส่งคืน

4.

KEY_ESC

แสดงคีย์ esc

5.

KEY_LEFT

แสดงคีย์ซ้าย

6.

KEY_UP

แสดงคีย์

7.

KEY_RIGHT

แสดงคีย์ขวา

8.

KEY_DOWN

แสดงคีย์ลง

9.

KEY_DELETE

เป็นตัวแทนของคีย์ลบ

10.

KEY_HOME

เป็นตัวแทนของกุญแจบ้าน

11.

KEY_END

แสดงรหัสสิ้นสุด

12.

KEY_PAGEUP

แสดงคีย์เพจขึ้น

13.

KEY_PAGEDOWN

แสดงคีย์หน้าลง

วิธีจัดการเหตุการณ์

ก่อนที่เราจะเริ่มให้เราดูตัวอย่างการใช้วิธีเหตุการณ์ ตัวอย่างนี้แสดงวิธีจับองค์ประกอบ DOM ที่เหตุการณ์เกิดขึ้น

ตัวอย่าง

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         // Register event 'click' and associated call back.
         Event.observe(document, 'click', respondToClick);
  
         // Callback function to handle the event.
         function respondToClick(event) {
            var element = event.element();
            alert("Tag Name : " + element.tagName );
         }
      </script>
   </head>

   <body>
      <p id = "note"> Click on any part to see the result.</p>
      <p id = "para">This is paragraph</p>
      <div id = "division">This is divsion.</div>
   </body>
</html>

เอาต์พุต

นี่คือรายการวิธีการทั้งหมดที่เกี่ยวข้องกับ Event. ฟังก์ชั่นที่คุณมักจะใช้มากเป็นสังเกต , องค์ประกอบและหยุด

วิธีการจัดกิจกรรมต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าคุณมีต้นแบบเวอร์ชัน 1.6 เป็นอย่างน้อย js

ส. วิธีการและคำอธิบาย
1. ธาตุ()

ส่งกลับองค์ประกอบ DOM ที่เหตุการณ์เกิดขึ้น

2. ขยาย ()

ขยายเหตุการณ์ด้วยวิธีการทั้งหมดที่มีอยู่ใน Event.Methods

3. findElement ()

ส่งกลับองค์ประกอบ DOM แรกที่มีชื่อแท็กที่กำหนดขึ้นจากองค์ประกอบที่เกิดเหตุการณ์

4. isLeftClick ()

ตรวจสอบว่าเหตุการณ์เกี่ยวกับเมาส์เกี่ยวกับปุ่มนั้นเกี่ยวกับปุ่ม "ซ้าย" (หลักจริง ๆ ) หรือไม่

5. สังเกต()

ลงทะเบียนตัวจัดการเหตุการณ์บนองค์ประกอบ DOM

6. ตัวชี้ X ()

ส่งคืนตำแหน่งแนวนอนที่แน่นอนสำหรับเหตุการณ์เมาส์

7. ตัวชี้ Y ()

ส่งคืนตำแหน่งแนวตั้งสัมบูรณ์สำหรับเหตุการณ์เมาส์

8. หยุด()

หยุดการแพร่กระจายของเหตุการณ์และป้องกันไม่ให้การดำเนินการเริ่มต้นถูกทริกเกอร์ในที่สุด

9. หยุดการสังเกต ()

ยกเลิกการลงทะเบียนตัวจัดการเหตุการณ์

10. ยกเลิกการโหลดแคช ()

ยกเลิกการลงทะเบียนตัวจัดการเหตุการณ์ทั้งหมดที่ลงทะเบียนผ่านการสังเกตการณ์ ต่อสายโดยอัตโนมัติสำหรับคุณ ไม่สามารถใช้ได้ตั้งแต่ 1.6

Prototype เป็นวิธีง่ายๆในการจัดการฟอร์ม HTML Prototype's Form คือเนมสเปซและโมดูลสำหรับทุกสิ่งที่เกี่ยวข้องกับฟอร์มที่อัดแน่นไปด้วยการจัดการแบบฟอร์มและการทำให้เป็นอนุกรม

แม้ว่าจะมีวิธีการจัดการกับฟอร์มโดยรวม แต่Formโมดูลย่อยจะเกี่ยวข้องกับตัวควบคุมฟอร์มเฉพาะ

นี่คือรายการวิธีการทั้งหมดที่เกี่ยวข้องกับ Form Element.

วิธีการสร้างแบบฟอร์มต้นแบบ

NOTE - ตรวจสอบให้แน่ใจว่าคุณมีต้นแบบเวอร์ชัน 1.6 เป็นอย่างน้อย js

ส. วิธีการและคำอธิบาย
1. ปิดการใช้งาน ()

ปิดใช้งานแบบฟอร์มทั้งหมด ตัวควบคุมแบบฟอร์มจะมองเห็นได้ แต่ไม่สามารถแก้ไขได้

2. เปิดใช้งาน ()

เปิดใช้งานแบบฟอร์มที่ปิดใช้งานทั้งหมดหรือบางส่วน

3. findFirstElement ()

ค้นหาตัวควบคุมฟอร์มแรกที่ไม่ซ่อนและไม่ปิดใช้งาน

4. focusFirstElement ()

ให้แป้นพิมพ์โฟกัสไปที่องค์ประกอบแรกของแบบฟอร์ม

5. getElements ()

ส่งคืนชุดของตัวควบคุมฟอร์มทั้งหมดภายในฟอร์ม

6. getInputs ()

ส่งคืนคอลเล็กชันขององค์ประกอบ INPUT ทั้งหมดในแบบฟอร์ม ใช้อาร์กิวเมนต์ประเภทและชื่อที่เป็นทางเลือกเพื่อ จำกัด การค้นหาแอตทริบิวต์เหล่านี้

7. คำขอ ()

วิธีที่สะดวกในการทำให้เป็นอนุกรมและส่งแบบฟอร์มผ่าน Ajax ขอ URL ของแอตทริบิวต์การดำเนินการของแบบฟอร์ม พารามิเตอร์ตัวเลือกถูกส่งไปยังอินสแตนซ์ Ajax.Request ซึ่งอนุญาตให้แทนที่เมธอด HTTP และระบุพารามิเตอร์เพิ่มเติม

8. รีเซ็ต ()

รีเซ็ตฟอร์มเป็นค่าเริ่มต้น

9. ทำให้เป็นอนุกรม ()

จัดลำดับข้อมูลฟอร์มเป็นสตริงที่เหมาะสมกับคำขอ Ajax (ลักษณะการทำงานเริ่มต้น) หรือถ้า getHash ที่เป็นทางเลือกประเมินเป็นจริงแฮชอ็อบเจ็กต์ที่คีย์เป็นชื่อควบคุมฟอร์มและค่าเป็นข้อมูล

10. serializeElements ()

จัดลำดับอาร์เรย์ขององค์ประกอบฟอร์มเป็นสตริงที่เหมาะสมกับคำขอ Ajax (ลักษณะการทำงานเริ่มต้น) หรือถ้า getHash ที่เป็นทางเลือกประเมินเป็นจริงแฮชอ็อบเจ็กต์ที่คีย์เป็นชื่อควบคุมฟอร์มและค่าเป็นข้อมูล

รู้เบื้องต้นเกี่ยวกับ JSON

JSON (JavaScript Object Notation) เป็นรูปแบบการแลกเปลี่ยนข้อมูลที่มีน้ำหนักเบา

  • JSON เป็นเรื่องง่ายสำหรับมนุษย์ในการอ่านและเขียน

  • JSON เป็นเรื่องง่ายสำหรับเครื่องในการแยกวิเคราะห์และสร้าง

  • JSON ขึ้นอยู่กับส่วนย่อยของภาษาโปรแกรม JavaScript

  • JSON ถูกใช้โดย API ทั่วทั้งเว็บและเป็นทางเลือกที่รวดเร็วสำหรับ XML ในคำขอ Ajax

  • JSON เป็นรูปแบบข้อความที่เป็นอิสระจากภาษาโดยสิ้นเชิง

Prototype 1.5.1 และเวอร์ชันที่ใหม่กว่ามีการเข้ารหัส JSON และรองรับการแยกวิเคราะห์

การเข้ารหัส JSON

Prototype มีวิธีการเข้ารหัสดังต่อไปนี้ -

NOTE - ตรวจสอบให้แน่ใจว่ามี prototype js เวอร์ชัน 1.6 เป็นอย่างน้อย

ส. วิธีการและคำอธิบาย
1. Number.toJSON ()

ส่งคืนสตริง JSON สำหรับ Number ที่กำหนด

2. สตริง. toJSON ()

ส่งคืนสตริง JSON สำหรับสตริงที่กำหนด

3. Array.toJSON ()

ส่งคืนสตริง JSON สำหรับ Array ที่กำหนด

4. Hash.toJSON ()

ส่งคืนสตริง JSON สำหรับ Hash ที่กำหนด

5. วันที่. toJSON ()

แปลงวันที่เป็นสตริง JSON (ตามรูปแบบ ISO ที่ใช้โดย JSON)

6. Object.toJSON ()

ส่งคืนสตริง JSON สำหรับวัตถุที่กำหนด

หากคุณไม่แน่ใจเกี่ยวกับประเภทของข้อมูลที่คุณต้องเข้ารหัสทางออกที่ดีที่สุดของคุณคือใช้ Object.toJSON ดังนั้น -

var data = {name: 'Violet', occupation: 'character', age: 25 };
Object.toJSON(data);

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

'{"name": "Violet", "occupation": "character", "age": 25}'

นอกจากนี้หากคุณกำลังใช้วัตถุที่กำหนดเองคุณสามารถกำหนดวิธีการ toJSON ของคุณเองซึ่งจะถูกใช้โดยObject.toJSON ตัวอย่างเช่น -

var Person = Class.create();
Person.prototype = {
   initialize: function(name, age) {
      this.name = name;
      this.age = age;
   },  
   toJSON: function() {
      return ('My name is ' + this.name + 
         ' and I am ' + this.age + ' years old.').toJSON();
   }
};
var john = new Person('John', 49);
Object.toJSON(john);

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

'"My name is John and I am 49 years old."'

การแยกวิเคราะห์ JSON

ใน JavaScript โดยทั่วไปการแยกวิเคราะห์ JSON ทำได้โดยการประเมินเนื้อหาของสตริง JSON Prototype แนะนำString.evalJSONเพื่อจัดการกับสิ่งนี้ ตัวอย่างเช่น -

var d='{ "name":"Violet","occupation":"character" }'.evalJSON();
d.name;

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

"Violet"

ใช้ JSON กับ Ajax

การใช้ JSON กับ Ajax นั้นตรงไปตรงมามาก เพียงแค่เรียกใช้String.evalJSONบนคุณสมบัติ responseText ของการขนส่ง -

new Ajax.Request('/some_url', {
   method:'get',
   onSuccess: function(transport) {
      var json = transport.responseText.evalJSON();
   }
});

หากข้อมูลของคุณมาจากแหล่งที่ไม่น่าเชื่อถือโปรดแน่ใจว่าได้ฆ่าเชื้อแล้ว -

new Ajax.Request('/some_url', {
   method:'get',
   requestHeaders: {Accept: 'application/json'},
   onSuccess: function(transport) {
      var json = transport.responseText.evalJSON(true);
   }
});

ข้อมูลเบื้องต้นเกี่ยวกับ AJAX

AJAX ย่อมาจาก Aซิงโครนัส JavaScript และ Xมล. AJAX เป็นเทคนิคใหม่ในการสร้างเว็บแอปพลิเคชันที่ดีขึ้นเร็วขึ้นและโต้ตอบได้มากขึ้นด้วยความช่วยเหลือของ XML, HTML, CSS และ Java Script

เพื่อความเข้าใจที่สมบูรณ์เกี่ยวกับ AJAX, โปรดไปผ่านง่าย ๆ ของเราAJAX กวดวิชา

การสนับสนุนต้นแบบสำหรับ AJAX

เฟรมเวิร์กต้นแบบช่วยให้คุณจัดการกับการโทร Ajax ด้วยวิธีที่ง่ายและสนุกซึ่งปลอดภัย (ข้ามเบราว์เซอร์) Prototype ยังจัดการอย่างชาญฉลาดด้วยโค้ด JavaScript ที่ส่งคืนจากเซิร์ฟเวอร์และจัดเตรียมคลาสตัวช่วยสำหรับการสำรวจ

ฟังก์ชันการทำงานที่อาแจ็กซ์ที่มีอยู่ในโลกวัตถุอาแจ็กซ์ อ็อบเจ็กต์นี้มีวิธีการที่จำเป็นทั้งหมดในการจัดการคำขอและการตอบกลับของ AJAX ด้วยวิธีง่ายๆ

คำขอ AJAX

คำขอที่เกิดขึ้นจริงจะทำโดยการสร้างอินสแตนซ์ของAjax.request ()วัตถุ

new Ajax.Request('/some_url', { method:'get' });

พารามิเตอร์แรกคือ URL ของคำขอ อย่างที่สองคือแฮชตัวเลือก ตัวเลือกวิธีการอ้างถึงวิธี HTTP ที่จะใช้ วิธีเริ่มต้นคือ POST

AJAX การตอบกลับการโทรกลับ

คำขอ Ajax เป็นแบบอะซิงโครนัสโดยปริยายซึ่งหมายความว่าคุณต้องมีการเรียกกลับที่จะจัดการข้อมูลจากการตอบกลับ วิธีการโทรกลับจะถูกส่งผ่านในแฮชตัวเลือกเมื่อทำการร้องขอ -

new Ajax.Request('/some_url', {
   method:'get',
   onSuccess: function(transport) {
      var response = transport.responseText || "no response text";
      alert("Success! \n\n" + response);
   },
   onFailure: function() { alert('Something went wrong...') }
});

ที่นี่จะมีการโทรกลับสองครั้งในแฮช -

  • onSuccess
  • onFailure

การเรียกสองครั้งข้างต้นจะถูกเรียกตามสถานะของการตอบกลับ พารามิเตอร์แรกที่ส่งผ่านไปยังทั้งสองคืออ็อบเจ็กต์xmlHttpRequestดั้งเดิมซึ่งคุณสามารถใช้คุณสมบัติresponseTextและresponseXMLตามลำดับ

คุณสามารถระบุทั้งการโทรกลับหนึ่งหรือไม่มีก็ได้ขึ้นอยู่กับคุณ การโทรกลับอื่น ๆ ที่มีอยู่ ได้แก่ -

  • onUninitialized
  • onLoading
  • onLoaded
  • onInteractive
  • onComplete
  • onException

ทั้งหมดนี้ตรงกับสถานะบางอย่างของการขนส่งxmlHttpRequestยกเว้น onException ซึ่งจะเริ่มทำงานเมื่อมีข้อยกเว้นในขณะที่ส่งการเรียกกลับอื่น ๆ

NOTE- การเรียกกลับ onUninitialized, onLoading, onLoaded และ onInteractive นั้นไม่ได้ใช้งานอย่างสม่ำเสมอในทุกเบราว์เซอร์ โดยทั่วไปควรหลีกเลี่ยงการใช้สิ่งเหล่านี้

วิธีการ AJAX ต้นแบบ

ออบเจ็กต์ Ajaxมีวิธีการที่จำเป็นทั้งหมดในการจัดการคำขอและการตอบกลับของ AJAX ด้วยวิธีง่ายๆ นี่คือรายการวิธีการทั้งหมดที่เกี่ยวข้องกับ AJAX

NOTE - ตรวจสอบให้แน่ใจว่าคุณมีต้นแบบเวอร์ชัน 1.6 เป็นอย่างน้อย js

ส. วิธีการและคำอธิบาย
1. ตัวเลือก Ajax

นี่ไม่ใช่วิธีการ แต่ให้รายละเอียดตัวเลือกหลักทั้งหมดที่ผู้ร้องขอ AJAX และการติดต่อกลับทั้งหมดใช้ร่วมกัน

2. Ajax.PeriodicalUpdater ()

ดำเนินการตามคำขอ AJAX เป็นระยะและอัปเดตเนื้อหาของคอนเทนเนอร์ตามข้อความตอบกลับ

3. Ajax.Request ()

เริ่มต้นและประมวลผลคำขอ AJAX

4. Ajax การตอบสนอง ()

ที่เก็บของผู้ฟังทั่วโลกที่แจ้งเตือนเกี่ยวกับทุกขั้นตอนของคำขอ AJAX ที่ใช้ Prototype

5. Ajax.Response ()

วัตถุส่งผ่านเป็นอาร์กิวเมนต์แรกของการเรียกกลับของ Ajax ทั้งหมด

6. Ajax.Updater ()

ดำเนินการตามคำขอ AJAX และอัปเดตเนื้อหาของคอนเทนเนอร์ตามข้อความตอบกลับ

Prototype Ranges แสดงถึงช่วงเวลาของค่า วิธีที่ต้องการในการรับช่วงคือการใช้$R ฟังก์ชันยูทิลิตี้

คุณสามารถสร้างค่าที่หลากหลายโดยใช้ไวยากรณ์ง่ายๆดังนี้ -

$R(1, 10).inspect();

$R('a', 'e').inspect();

สิ่งนี้จะให้ผลลัพธ์ดังต่อไปนี้ -

['1, 2, 3, 4, 5, 6, 7, 8, 9, 10']

['a', 'b', 'c', 'd', 'e']

วิธีการรวม ()

วิธีนี้กำหนดว่าค่าจะรวมอยู่ในช่วงหรือไม่ -

ไวยากรณ์

Range.include(value);

ส่งคืนค่า

หากรวมค่าแล้วจะส่งกลับค่าจริงมิฉะนั้นจะเป็นเท็จ

ตัวอย่าง

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function showResult() {
            alert ( "Test 1 : " + $R(1, 10).include(5));
            // Returns true
   
            alert ( "Test 2 : " + $R('a', 'h').include('x'));
            // Returns flase
         }
      </script>
   </head>

   <body>
      <p>Click the button to see the result.</p>
      <br />
      <br />
      <input type = "button" value = "Result" onclick = "showResult();"/>
   </body>
</html>

เอาต์พุต

หลายครั้งจำเป็นต้องเรียกใช้ฟังก์ชันหลาย ๆ ครั้งหลังจากช่วงเวลาหนึ่ง ตัวอย่างเช่นคุณอาจต้องการรีเฟรชหน้าจอหลังจากเวลาที่กำหนด Prototype มีกลไกง่ายๆในการใช้งานโดยใช้วัตถุPeriodicalExecuter

ข้อได้เปรียบที่ได้รับจากPeriodicalExecuterคือมันป้องกันคุณจากการดำเนินการหลายขนานของฟังก์ชันเรียกกลับ

การสร้าง PeriodicalExecuter

ตัวสร้างรับสองอาร์กิวเมนต์ -

  • ฟังก์ชันการโทรกลับ
  • ช่วงเวลา (เป็นวินาที) ระหว่างการดำเนินการ

เมื่อเปิดใช้งาน PeriodicalExecuter จะทริกเกอร์ไปเรื่อย ๆ จนกว่าเพจจะยกเลิกการโหลดหรือ executer จะหยุดโดยใช้เมธอดstop ()

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างที่จะปรากฏขึ้นในกล่องโต้ตอบหลังจากทุกๆ 5 วินาทีจนกว่าคุณจะหยุดมันโดยการกดปุ่ม "ยกเลิก"

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function startExec() {
            new PeriodicalExecuter(function(pe) {
               if (!confirm('Want me to annoy you again later?'))
               pe.stop();
            }, 5);
         }
      </script>
   </head>

   <body>
      <p>Click start button to start periodic executer:</p>
      <br />
      <br />
      <input type = "button" value = "start" onclick = "startExec();"/>
   </body>
</html>

เอาต์พุต