สามารถสร้าง JQuery และเครื่องมือที่คล้ายกันในการติดตั้งเบราว์เซอร์ได้หรือไม่?


19

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

ไฟล์ JQuery มีขนาดเล็กโดยเฉพาะดังนั้นคุณสามารถติดตั้งเบราว์เซอร์ต่าง ๆ (ทั้งหมด?) ได้หลายรุ่น ตอนนี้ยุติธรรมแล้วนี่จะเพิ่มการติดตั้งเวลาดาวน์โหลดเบราว์เซอร์เอง

จากนั้นเว็บไซต์สามารถตรวจสอบ "ท้องถิ่น" ก่อนที่จะ CDN (ซึ่งก็คือแคช) ก่อนที่จะเริ่มต้นการดาวน์โหลดจากเซิร์ฟเวอร์เว็บไซต์ในที่สุด

ถ้าสิ่งนี้เป็นไปได้มันถูกทำไปแล้วและถ้าไม่ทำไปทำไมถึงไม่ทำล่ะ


3
เมื่อฟังก์ชั่นจาวาสคริปต์โดยเฉพาะนั้นแพร่หลายจนมองว่ามันจำเป็นทุกที่มันจะถูกเพิ่มเข้าไปในภาษา Array.prototype.forEach, Array.prototype.indexOf, Object.createเป็นตัวอย่างของรหัสที่ได้รวมเป็นเครื่องยนต์ JavaScript เอง
zzzzBov

ฉันแน่ใจว่า Chrome จะมีวิธีแก้ปัญหาที่เสนอตัวเลือกการติดตั้งส่วนขยายพร้อมความสามารถในการแคชไฟล์ jQuery / javascript ที่จำเป็นเมื่อมีการสร้างเว็บไซต์ครั้งแรก หากผู้ใช้ปฏิเสธมันจะบังคับตามคำขอตามปกติ ตัวเลือก "ไม่ถามฉันอีก" สามารถปิดใช้งานตัวเลือกนี้ได้ อาจมีพื้นที่ในการตั้งค่าที่ผู้ใช้สามารถเลือกไฟล์ js ที่จะเก็บไว้ในแคชเบราว์เซอร์โดยใช้รายการช่องทำเครื่องหมายอย่างง่าย จะมี js ที่กำหนดเองที่ส่งไปยังลูกค้าเสมอ แต่ดูเหมือนว่าการกำจัดไฟล์ js ที่ถูกส่งไปยังไคลเอนต์ต่อคำขอจะทำให้ p
yardpenalty

1
คุณต้องการแนะนำเวอร์ชันใดให้รวมอยู่ด้วย แล้วสัปดาห์หน้าล่ะ
pdr

@pdr - คำถามเก่าพร้อมคำตอบจำนวนมากสำหรับการทำเช่นนี้ แต่คุณสามารถรวมรุ่นล่าสุดได้อย่างง่ายดายด้วยการเปิดตัวเบราว์เซอร์และอนุญาตให้รหัสผู้ใช้ย้อนกลับไปขอรุ่นที่ใหม่กว่าจาก CDN หากจำเป็น ด้วยการทำลายการเปลี่ยนแปลงเช่น JQuery 2.0 คุณสามารถมีทั้งคู่และอนุญาตให้เลือกรหัส ทุกจุดที่เป็นใบ้ แต่จริงๆ :)
Ozz

คำตอบ:


15

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

แก้ไข: ไลบรารี JS มีอยู่ที่นั่นเป็นหลักเพื่อให้การจัดการกับ DOM ง่ายขึ้น ฉันไม่คิดว่าการรวมไลบรารีบุคคลที่สามเข้ากับเบราว์เซอร์เป็นวิธีที่เหมาะสมในการทำให้ DOM API น่าพอใจยิ่งขึ้น


1
ขอบคุณ Dan - ลิงก์ใด ๆ ที่ฉันสามารถอ่านเกี่ยวกับสิ่งที่คุณอธิบาย
ozz

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

4
การดำเนินการคลองรากจะทำให้ DOM API ได้สะดวกสบายมากขึ้น ...
Donal Fellows

1
@maple_shaft นั่นเป็นข้อโต้แย้งที่ค่อนข้างกว้างขวาง การแจกแจง jQuery แบบย่อคือ 31K แม้ว่าจะเป็นกรณีที่มีหน้าเว็บที่มีจำนวนไลบรารีที่แตกต่างกันจำนวนมาก แต่คำถามก็เฉพาะกับ jQuery และไม่มีการบัญชีสำหรับโปรแกรมเมอร์ที่เส็งเคร็ง
Adam Crossland

16

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

จากนั้นเว็บไซต์สามารถตรวจสอบ "ท้องถิ่น" ก่อนที่จะ CDN ก่อนที่จะเริ่มต้นการดาวน์โหลดจากเซิร์ฟเวอร์เว็บไซต์ในที่สุด

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

การรวม JQuery ในการตั้งค่าเบราว์เซอร์จะ:

  • เพิ่มความซับซ้อนที่ไม่จำเป็นให้กับแอปพลิเคชันและการตั้งค่าเบราว์เซอร์

  • เพิ่มความซับซ้อนที่ไม่จำเป็นเพื่อปรับปรุงกระบวนการ

  • เพิ่มจำนวนการอัปเดตเพื่อรักษา JQuery เวอร์ชันล่าสุดแม้สำหรับผู้ที่ไม่ต้องการ

  • เพิ่มความสับสน: ทำไม JQuery และไม่ใช่ Prototype หรือกรอบ, รูปภาพ, ไฟล์ CSS ฯลฯ

  • เป็นต้น

การเพิ่มความซับซ้อนของผลิตภัณฑ์ซอฟต์แวร์ที่ไม่มีประโยชน์ในแง่ของคุณสมบัติประสิทธิภาพ ฯลฯ เป็นความคิดที่แย่มาก


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

ขอบคุณสำหรับทุกเหตุผลของคุณที่จะไม่รวมอยู่ในการตั้งค่าเบราว์เซอร์ :-)
2012

6
คุณไม่สามารถกำจัดความต้องการในการดาวน์โหลดครั้งแรก หาก JQuery รวมอยู่ในการตั้งค่ามันจะถูกดาวน์โหลดเป็นครั้งแรกเมื่อบุคคลดาวน์โหลดไฟล์ปฏิบัติการติดตั้ง (จากนั้นจะดาวน์โหลดอีกครั้งผ่านการอัปเดตเมื่อมีการเปิดตัว JQuery เวอร์ชันใหม่)
Arseni Mourzenko

2
มันไม่ได้กำจัดความนิยมในการใช้งาน แต่ย้ายมันจากการเข้าชมเว็บไซต์แรกไปยังการดาวน์โหลดการปฏิบัติการติดตั้งซึ่งหมายความว่าโดยรวมนี่เป็นสิ่งที่ตรงกันข้ามกับการบันทึกประสิทธิภาพ ไม่กำจัดความต้องการของ CDN ไม่เช่นนั้นหากคุณต้องการสนับสนุนเบราว์เซอร์รุ่นเก่าและเบราว์เซอร์ที่ไม่ได้รับการอัปเดตตั้งแต่รุ่น JQuery รุ่นล่าสุด
Arseni Mourzenko

1
@All หากคุณต้องการที่จะพูดคุยเกี่ยวกับเรื่องนี้ต่อไปโปรดใช้เวลานี้ในการแชท
maple_shaft

5

อย่าลืมว่า jQuery เป็นห้องสมุด js ดูเหมือนว่าจะกลายเป็นหนึ่งในข้อเท็จจริงและถูกมองว่าเป็นยาครอบจักรวาล (จนถึงจุดที่จะกลายเป็นสิ่งที่น่าจดจำบน SO) แต่มันก็เป็นเพียงห้องสมุด js

ทุกอย่างที่เป็นมาตรฐานสำหรับการเขียนสคริปต์ (EMCAScript) จะถูกรวมอยู่ในเบราว์เซอร์แล้วสิ่งอื่น ๆ ที่เพิ่มเข้ามาในเบราว์เซอร์อื่น ๆ จะกลายเป็นที่ไม่ได้มาตรฐานและคุณต้องการจบลงด้วยปัญหาเบราว์เซอร์เบราว์เซอร์ที่ไม่ได้มาตรฐาน (เช่นแบบจำลองเหตุการณ์ IE ) ที่มีอิทธิพลต่อส่วนหนึ่งของสาเหตุที่ทำให้ไลบรารีอย่าง jQuery ถูกสร้างขึ้นตั้งแต่แรก

คำตอบสั้น ๆ : พวกเขาสามารถรวม แต่ไม่ควร


5

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

ในขณะที่ jQuery อาจเป็นไลบรารี JavaScript ที่แพร่หลายมากที่สุด แต่ก็ไม่ได้เป็นเพียงไลบรารีเดียว แต่สำหรับฉันแล้วการทำให้มันเป็นส่วนประกอบที่ติดตั้งของเบราว์เซอร์จะไม่ดีต่อระบบนิเวศของ JS การแข่งขันนั้นดีต่อสุขภาพและนำไปสู่นวัตกรรมโดยทั่วไปเราและนักพัฒนาซอฟต์แวร์และผู้ใช้ซอฟต์แวร์จะไม่ได้รับการบริการที่ดีโดยให้ jQuery เป็นตำแหน่งพิเศษ

เมื่อคุณทำการแคชแล้วประโยชน์ที่คุณจะได้รับนั้นน้อยมาก รุ่นย่อของ jQuery เป็นเพียง 31K นั่นเป็นเหตุผลสำหรับการเปลี่ยนไม่มีอะไร


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

ฉันได้อัปเดตคำถามเพื่อพูดถึงว่าฉันรู้ว่าแคช :-)
2012
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.