ข้อดีและข้อเสียของสคริปต์ที่โฮสต์ [ปิด]


12

ฉันเห็นนักพัฒนาบางคนใช้สคริปต์ที่โฮสต์เพื่อเชื่อมโยงไลบรารีของพวกเขา

cdn.jquerytools.org เป็นตัวอย่างหนึ่ง

ฉันเคยเห็นคนบ่นว่าลิงก์สคริปต์ที่โฮสต์ได้ถูกแย่งชิง

ความปลอดภัยในการใช้สคริปต์ที่โฮสต์จริงหรือไม่ สคริปต์มีการปรับปรุงโดยอัตโนมัติหรือไม่? ตัวอย่างเช่นหาก jQuery 5 ไปที่ 6 ฉันจะรับรุ่น 6 โดยอัตโนมัติหรือฉันต้องอัปเดตลิงก์ของฉันหรือไม่

ฉันเห็นด้วยว่า Google มีชุดสคริปต์ขนาดใหญ่สำหรับการโฮสต์

ข้อดีและข้อเสียคืออะไร?

คำตอบ:


11

ข้อดี

  • สคริปต์ของคุณจะถูกโหลดเร็วขึ้น หากคุณมีทรัพยากรจำนวนมากที่ต้องโหลดจากโดเมนเดียวโดยทั่วไปเบราว์เซอร์ของคุณจะติดขัดเรื่องนี้เพื่อให้คุณมีคำขอแบบขนานจำนวนมากไปยังโฮสต์เดียวกัน ดังนั้นหากคุณกำลังโหลดสคริปต์ที่แยกต่างหากสิบหกภาพหลายภาพและเอกสาร CSS หลายรายการจะต้องมีคิวเนื่องจากแต่ละทรัพยากรรอการโหลด (ดูที่การเชื่อมไฟล์ CSS และ Javascript เข้าด้วยกันอย่างแน่นอน - การโหลดทรัพยากรสคริปต์เพียงสองไฟล์จะเร็วขึ้นอย่างมาก)
  • หากคุณแยกทรัพยากรเหล่านั้นออกเป็นโดเมนแยกจากกันเบราว์เซอร์ของคุณจะไม่มีปัญหาในการเปิดการเชื่อมต่อเพิ่มเติมไปยังเซิร์ฟเวอร์นั้นซึ่งหมายความว่ามีการโหลดทรัพยากรมากขึ้นพร้อมกันทำให้การเรียกใช้หน้าเว็บเร็วขึ้น นอกจากนี้คุณยังอนุญาตให้เซิร์ฟเวอร์อื่นจัดการส่วนหนึ่งของการโหลดหน้าเว็บของคุณซึ่งเป็นผลดีต่อเซิร์ฟเวอร์ของคุณที่อาจทำงานได้กับคำขอการดำเนินการสคริปต์หลายประการ
  • นอกจากนี้เซิร์ฟเวอร์ CDN เหล่านี้ (เครือข่ายส่วนเบี่ยงเบนเนื้อหา) ได้รับการกำหนดค่าให้ทำงานเป็น CDN พวกเขามักจะทำอาหาร (สำหรับขนาดแพ็คเก็ตขนาดเล็ก) และตั้งค่ากับเซิร์ฟเวอร์ที่มีน้ำหนักเบามากที่เกี่ยวข้องกับตัวเองทั้งหมดด้วยการให้บริการทรัพยากรและแคชทรัพยากรที่ใช้กันทั่วไปและไม่มากด้วยการยกแบบวันต่อวัน เซิร์ฟเวอร์ Apache จะทำงาน
  • การใช้ CDN เช่น Google หรือ Akami ก็มีข้อดีอื่น ๆ เช่นกัน - Google มีเซิร์ฟเวอร์ทั่วโลกโดยเฉพาะและระบบการกำหนดเส้นทางนั้นฉลาดพอที่จะจับคู่คำขอทรัพยากรที่มีสำเนาทางภูมิศาสตร์ที่ใกล้เคียงที่สุด เซิร์ฟเวอร์ของคุณอาจพยายามให้บริการ jQuery.js ไปยัง Vladimir มากกว่าในรัสเซีย - Google อาจมีทรัพยากรแบบเดียวกันจาก Vladimir ซึ่งจะช่วยลดเวลาในการตอบสนอง
  • นอกจากนี้เนื่องจากเว็บไซต์จำนวนมากใช้ CDN เหล่านี้ไปแล้วจึงมีความเป็นไปได้สูงที่ผู้ใช้จะได้รับทรัพยากรที่แคชไว้แล้ว jQuery.js จากเซิร์ฟเวอร์ของคุณและ jQuery.js จากเซิร์ฟเวอร์ของ Google จะไม่ถือว่าเป็นไฟล์เดียวกันไม่ว่าจะเหมือนกัน - หากคุณโหลดจาก Google ก็จะสามารถใช้สำเนาแคชจากเว็บไซต์ก่อนหน้านี้ที่ ผู้ใช้เยี่ยมชม
  • ไฟล์จะไม่เปลี่ยนแปลงโดยเฉพาะอย่างยิ่งสำหรับทรัพยากรสคริปต์เช่นกรอบงาน Javascript หากมีเวอร์ชันใหม่ออกมา Google จะยังคงโฮสต์เวอร์ชันเก่า (ไม่ว่าจะเป็นข้อผิดพลาดที่น่ารังเกียจ) โดยเฉพาะเพื่อให้ CDN ทำงานต่อได้ตามปกติและไม่ตอบสนองคำขอที่ไม่ดี นี่คือเหตุผลที่ไฟล์ CDN ต่อท้ายเต็มด้วยหมายเลขเวอร์ชั่นที่เหมาะสม

จุดด้อย

  1. มีความเป็นไปได้ที่ CDN ของคุณจะไม่พร้อมใช้งาน อย่างไรก็ตามโอกาสที่บางกว่าไซต์ของคุณอาจลดลง CDN ที่ใหญ่ขึ้นเช่น Google และ Akami จะมีการซ้อนทับหลายชั้น
  2. การสร้างการเชื่อมต่อใหม่อาจไม่คุ้มค่าหากคุณมีทรัพยากรหนึ่งหรือสองแหล่งที่จะโหลดจากเซิร์ฟเวอร์ของคุณเอง
  3. คุณไม่มีการควบคุมไฟล์ที่ให้บริการดังนั้นการใช้ jQuery รุ่นที่กำหนดเองของคุณหรืออะไรก็ตามที่คุณพยายามโหลดนั้นจะไม่เกิดขึ้นเว้นแต่ว่าคุณจ่ายเงินให้ CDN ของคุณเอง

ความปลอดภัย

ฉันจะแนะนำโพสต์ El Stack นี้บวกกับจำนวน Googling ของหัวเรื่องที่ดี แต่ละ CDN จะแตกต่างกันแม้ว่าโดยสรุปฉันคิดว่านี่จะเป็นความกังวลเล็กน้อย


1

สิ่งที่ไม่มีใครพูดถึงนั้นเป็นอีกตัวเลือกการติดตามสำหรับ Google พวกเขาไม่ได้ให้บริการทั้งหมดนี้โดยไม่มีค่าใช้จ่ายโดยไม่มีเหตุผล AdSense และ Analytics นั้นค่อนข้างเพียงพอและอย่างน้อยก็สามารถกรองได้ นั่นเป็นเรื่องใหญ่ในหนังสือของฉัน


0

ข้อดี:

  • คุณไม่ต้องจ่ายแบนด์วิดท์ที่เกี่ยวข้องกับการให้บริการไฟล์และโดยทั่วไป

จุดด้อย:

  • คุณขึ้นอยู่กับความพร้อมของผู้ให้บริการโฮสติ้งที่คุณใช้งานอยู่ (หากพวกเขาลงไปด้วยเหตุผลอะไรก็ตาม
  • คุณบังคับให้สคริปต์รุ่นใดก็ตามที่ผู้ให้บริการโฮสต์มี

มีประโยชน์อื่น ๆ ของการใช้ CDN แต่ไม่เกี่ยวข้องโดยตรงกับการใช้บริการโฮสต์สคริปต์ที่ 3


0

ตามแนวทางปฏิบัติที่ดีที่สุดวิธีการทั่วไปในการเพิ่มประสิทธิภาพการโหลดหน้าเว็บคือการรวมทรัพยากร JS ทั้งหมดของคุณเนื่องจากจำนวนการเชื่อมต่อที่ จำกัด ไปยังโดเมนเดียวตามที่ Jarrod พูดถึงและการตั้งค่าส่วนหัวของอนาคตในการตอบกลับ

สิ่งที่ CDN นำมาซึ่งการผสมผสานโดยเฉพาะอย่างยิ่งสิ่งที่ได้รับความนิยมอย่าง Jarrod ชี้ให้เห็นก็คือผู้ใช้จะต้องเข้าถึง URL ก่อนหน้านี้และสามารถดึงทรัพยากร JS ได้ทันทีจากแคชของลูกค้าโดยไม่จำเป็นต้องสร้างการเชื่อมต่อ

หากเราใช้ CDN และใช้แนวทางปฏิบัติที่ดีที่สุดเราสามารถบันทึกผู้ใช้จากการเรียกข้อมูลเพิ่มเติม ~ 10-50KB เมื่อพวกเขาเข้าถึง URL ของเราในตอนแรกและอนุญาตให้พวกเขาโหลดหน้าเว็บของพวกเขาได้เร็วขึ้น

ฉันขอแนะนำอย่างยิ่งให้ใช้ CDN ด้วยเหตุผลสองข้อ: ข้อเสีย Jarrod ที่กล่าวถึงนั้นจริง แต่ไม่สำคัญเลยและถ้าคุณรวมแหล่งข้อมูลของคุณไว้ในเอกสารฉบับเดียวแล้วคุณจะบังคับให้ทุกคนดึงข้อมูลกล่าวว่า เอกสาร (~ 33KBs) ทุกครั้งที่คุณอัพเดตหนึ่งในทรัพยากรที่บันเดิล

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


-2

อย่าทำมัน

โดยส่วนตัวฉันจะไม่พึ่งพาสคริปต์ที่โฮสต์โดยบุคคลที่สาม หากคุณใช้ประโยชน์จากสคริปต์คนอื่น ๆ คุณจะอยู่ในความเมตตาของพวกเขา มีหลายสิ่งที่ควรพิจารณา:

  1. หากเว็บไซต์ของพวกเขาลงไปหน้าของคุณอาจหมดเวลาหรือข้อผิดพลาดออก
  2. หากพวกเขาออกไปจากธุรกิจและปิดโฮสติ้งคุณก็สูญเสียการทำงานทั้งหมดที่
  3. หากพวกเขาถูกแฮ็กคุณก็อาจถูกแฮ็กได้เช่นกัน
  4. การเขียนสคริปต์ข้ามไซต์สามารถเล่นความเสียหายด้วยใบรับรอง SSL
  5. เวลาในการโหลดหน้าเว็บสามารถเพิ่มขึ้นอย่างรวดเร็ว
  6. หากอินเทอร์เฟซเปลี่ยนคุณต้องแก้ไขการเรียกใช้ฟังก์ชันทั้งหมด

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


1
ฉันคิดว่าถ้าคุณใช้ CDN ที่น่าเชื่อถือและมีขนาดใหญ่ 1. ) ฉันคาดหวังว่า CDN ของ Google จะมีเวลาทำงานที่ดีมาก 2. ) ฉันไม่เห็นว่า Google จะออกไปทำธุรกิจในเวลาใด ๆ ในเร็ว ๆ นี้ 3. ) เป็นไปได้ แต่เป็นไปได้อีกครั้ง แต่ฉันคาดหวังว่า .) ฉันไม่เห็นปัญหาใด ๆ 5. ) ถ้าเป็น CDN ที่น่านับถือการโหลดหน้าเว็บควรเร็วกว่าสิ่งที่คุณสามารถให้บริการตัวคุณเองได้ (ระหว่างการไพพ์ไลน์การแคชหลายไซต์และโดเมนที่ไม่มีเนื้อหา), 6. ) สำหรับ libs เวอร์ชันหลักเช่น jQuery ไม่ควรมีปัญหา
scunliffe

1
... นอกจากนี้ยังไม่มีอะไรหยุดคุณในการใช้สคริปต์ทางเลือกของคุณเองหาก CDN รีโมตล้มเหลว
scunliffe

ไม่มีเหตุผลเหล่านี้ในรายการ Cape Cod Gunny เป็นข้อกังวลที่ถูกต้องกับ CDN สมัยใหม่เช่น Google หรือผู้ให้บริการ CDN ขนาดใหญ่อื่น ๆ อีกมากมาย
Jarrod Nettles
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.