เป็นวิธีปฏิบัติทั่วไปหรือไม่ที่จะลดการใช้งาน JavaScript เมื่อสร้างเว็บไซต์ [ปิด]


32

ฉันเป็นนักพัฒนาเว็บมาเกือบ 10 ปีแล้วและฉันก็ติดนิสัยที่จะพยายามไม่ใช้ JavaScript ทุกครั้งที่ทำได้ ฉันไม่ได้พูดถึงการสร้างเว็บแอปที่นี่ แต่เป็นเว็บไซต์ที่ขับเคลื่อนด้วยฐานข้อมูล

นี่เป็นวิธีที่ดี / เคารพหรือไม่?


6
ฉันปิดการใช้งานจาวาสคริปต์มาตรฐานและ noscript บอกฉันจากแหล่งที่โหลด javscripts ไม่ใช่เรื่องแปลกสำหรับเว็บไซต์ที่จะโหลด javascript จากแหล่งข้อมูลรองมากกว่า 10 แห่งซึ่งในทางกลับกันก็จะโหลด javascripts จากแหล่งที่สาม และไม่ใช่เรื่องแปลกที่หน้าเว็บจะโหลดจาวาสคริปต์จากแหล่งที่มาภายนอกมากกว่า 20 รายการทั้งหมด ดังนั้นฉันจะบอกว่า: ลดการใช้จาวาสคริปต์ให้น้อยที่สุดอยู่นอกหน้าต่าง
Pieter B

9
ฉันสังเกตเห็นว่ายิ่งคุณใช้ Javascript มากเท่าใดเว็บไซต์ของคุณก็จะเป็นมิตรกับการนำทางและใช้งาน SEO ได้น้อยลง ฉันไม่สามารถนับจำนวนเว็บไซต์ที่ฉันออกเนื่องจาก "ลิงก์ javascript" และอื่น ๆ
BiAiB

1
ฉันพบว่ามีจาวาสคริปต์ใน internetz มาก ปัญหาคือ: 1) ตัวสร้างดัชนีอย่างง่ายไม่เข้าใจ js, 2) js จำนวนมากเผา CPU 3) บางแพลตฟอร์มยังคงไม่มี js (โทรศัพท์เบราว์เซอร์ลิงก์) ดังนั้นการหลีกเลี่ยง js เมื่อไม่จำเป็นเป็นวิธีปฏิบัติที่ดี
permeakra

ทำไมคำถามประจำสัปดาห์นี้ ฉันจะลงคะแนนนี้ไม่ชัดเจนและไม่สร้างสรรค์ โดยทั่วไป "ฉันควรใช้ X หรือไม่" คำถามที่ไม่ได้รับความนิยมในเว็บไซต์นี้ บางทีใครบางคนสามารถสอนฉัน
Mark E. Haase

เว็บสแต็กของ Microsoft มี (ขึ้นอยู่กับ MVC) พึ่งพา JS สำหรับปุ่มทุกปุ่มใน ASP.NET และ SharePoint ดังนั้นไม่เป็นเรื่องปกติที่จะลดการใช้งาน
เกรแฮม

คำตอบ:


51

มันเป็นสัญชาตญาณของโปรแกรมเมอร์ส่วนใหญ่ในการลดรหัสทุกประเภท โค้ดที่น้อยลงความซับซ้อนที่น้อยลงและข้อผิดพลาดที่เป็นไปได้น้อยลงในโค้ดดังกล่าว กฎนี้ใช้กับ Javascript เช่นเดียวกับภาษาอื่น ๆ คุณเพียงแค่ส่งเสริมประเพณี

ใช้ Javascript ตามต้องการ / ต้องการในหน้า HTML ... แต่ไม่มีเหตุผลที่จะใช้เมื่อไม่ต้องการใช้จริง


9
การหลีกเลี่ยง JavaScript เป็นเรื่องที่แตกต่างจากสัญชาตญาณทั่วไปเพื่อหลีกเลี่ยงรหัสเพิ่มเติม ด้วย JS ไม่ได้เป็นเพียงการลดความซับซ้อนของการพัฒนาเท่านั้น มีปัญหาความเข้ากันได้จริงกับผู้ใช้ของคุณ
jhocking

34

10 ปีที่แล้วอาจเป็นความคิดที่ดี ทุกวันนี้ส่วนใหญ่ของอินเทอร์เน็ต (อย่างน้อยบางส่วนที่ได้รับความนิยมมากที่สุด) กลายเป็นสิ่งที่ใช้ไม่ได้หรือมีฟังก์ชั่นที่ จำกัด อย่างมากเมื่อปิดการใช้งานจาวาสคริปต์ในเบราว์เซอร์ ดังนั้น IMHO วันนี้คุณสามารถคาดหวังให้ผู้ใช้ของคุณเปิดใช้งาน Javascript

และมีเฟรมเวิร์กมากมายเช่น JQuery เพื่อหลีกเลี่ยงความไม่เข้ากันของเบราว์เซอร์ IMHO ไม่มีเหตุผลจริงวันนี้ทำไมคุณควร จำกัด ตัวเองด้วยการไม่ใช้ Javascript สำหรับเว็บไซต์ของคุณ - เหตุผลเดียวที่คุณอาจไม่ได้ใช้มัน

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

EDIT2: สำหรับทุกเว็บไซต์แน่นอนว่าเราต้องค้นหาความสมดุลระหว่างความเป็นมิตรกับผู้ใช้ความเป็นมิตรกับเครื่องมือค้นหาและความพยายามในการพัฒนา IMHO วันนี้ Javascript สามารถช่วยปรับปรุงยอดคงเหลือนั้น - หากใช้อย่างชาญฉลาด กล่าวว่าฉันคิดว่าไม่จำเป็นต้องลดการใช้ Javascript ในวันนี้อีกต่อไปเพื่อรักษาสมดุล ใช้ด้วยความระมัดระวังและอย่าทำลายมัน


17
นี่คือตัวอย่าง: SEO, ผู้รวบรวมเว็บ, โปรแกรมอ่านหน้าจอ, NoScript, curl, เบราว์เซอร์มือถือ ฉันปิดการใช้งานสคริปต์โดยค่าเริ่มต้นและอินเทอร์เน็ตส่วนใหญ่ยังใช้งานได้ดี
tdammers

7
หากไซต์ไม่สามารถใช้งานได้หากไม่มี javascript แสดงว่า Google ไม่สามารถรวบรวมข้อมูลได้อย่างมีประสิทธิภาพและอาจเป็นหรือไม่สามารถใช้งานได้ในบริบท RESTful แม้แต่ Facebook ก็สามารถใช้งานได้อย่างน้อยที่สุดโดยไม่มี javascript
GordonM

9
ฉันเห็นด้วยกับสิ่งที่ถูกกล่าวถึงที่นี่ แต่ฉันคัดค้านความคิดที่ว่าเว็บไซต์ควร "ใช้งานได้อย่างน้อยที่สุดโดยไม่มี JavaScript" ไม่ถูกต้อง: ควรใช้งานได้สูงสุดโดยไม่ใช้ JavaScript
Jörg W Mittag

4
@ JörgWMittagหากคุณจะปิดการใช้งานเทคโนโลยีเว็บคุณไม่ควรคาดหวังว่าจะได้รับประโยชน์สูงสุดจากเว็บไซต์ สถานการณ์ต่างกัน แต่ถ้าฉันสร้างแอปพลิเคชันบนเว็บฉันอาจไม่ต้องเสียเวลาในการสร้างความเข้ากันได้อย่างสมบูรณ์สำหรับผู้ใช้ส่วนน้อยที่ปฏิเสธที่จะย้ายไปอยู่ในศตวรรษที่ 21 คล้ายกับวิธีที่ฉันไม่รองรับ IE 6 ในโครงการส่วนใหญ่ของฉัน
Tom Marthenal

2
มันเป็นเพียงมืออาชีพที่จะสนับสนุนทุกกรณีการใช้งาน หากคุณพลาดไปก็ไม่เป็นไรทุกคนจะทำผิดพลาดเป็นครั้งคราว แต่การละเลยพวกเขาเป็นปัญหาที่แตกต่างออกไป ฉันพร้อมที่จะพัฒนาเว็บไซต์ 100% โดยไม่มี JS และหลังจากทำงานแล้วให้เพิ่ม JS เพื่อทำให้งานง่ายขึ้นและทำให้ UX ดีขึ้น
Spidey

13

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

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

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

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


4
อย่างแน่นอน ควรใช้ Javascript เป็นเครื่องเทศไม่ใช่หลักสูตรหลัก
hlovdal

9

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

  • โฮเวอร์เอฟเฟกต์ (ควรเป็น CSS)
  • AJAX (ควรมีhrefเมื่อสมเหตุสมผล)
  • การวางตำแหน่ง (ควรเป็น CSS)

ประโยชน์มีดังนี้:

  • เว็บไซต์จะแสดงเร็วขึ้น
  • CSS มีความซับซ้อนน้อยกว่า JavaScript เป็นส่วนใหญ่
  • การมีhrefลิงก์สำรองช่วยให้เครื่องมือค้นหาผู้ใช้ที่ต้องการเปิดลิงก์ในแท็บอื่นและผู้ใช้ที่เกลียดชัง JavaScript

แน่นอน AJAX นั้นยอดเยี่ยมมากและเป็นหน้าแบบไดนามิกดังนั้นอย่าโยนสิ่งเหล่านั้นออกไปเพราะบางคนไม่ต้องการมัน

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


1
ฉันจำได้ว่าได้รับคำแนะนำมาหลายปีแล้วเกี่ยวกับ (สิ่งที่เรียกในเวลานั้น) Man Machine Interfaces: "เพียงเพราะคุณทำได้ไม่ได้หมายความว่าคุณควร" นี่เป็นเว็บไซต์จำนวนมากที่มีภาพเคลื่อนไหวฉูดฉาดมากเกินไป ควรใช้เสียงและสิ่งที่คล้ายกันนี้
แอนดรู

8

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

คุณต้องการที่จะเคลื่อนไหวหรือไม่?

... หรือ ...

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

ฉันจะไม่หลีกเลี่ยงการใช้ JS แต่ระวังที่จะไม่น่ารังเกียจในขณะที่มองหาเครื่องที่ช้าลง สิ่งเดียวกันนี้ถือเป็นจริงกับบางสิ่งใหม่ที่แปลกใหม่ที่เราได้รับใน CSS3 - เช่นเงาหล่น ... หากใช้มากเกินไปพวกเขาสามารถทำให้บางคนบนเครื่องที่ใช้พลังงานต่ำมีประสบการณ์ที่เลวร้ายจริงๆ

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


6

ฉันเชื่อว่าการเป็นนักพัฒนาเว็บไซต์ที่ค่อนข้างใหม่และอายุน้อย (ประมาณ 4 ปี) ฉันต้องค้นคว้าเรื่องนี้อย่างมากเนื่องจากจาวาสคริปต์มีอยู่ทั่วไป

สิ่งที่ฉันพยายามทำในโครงการของฉันคือตรวจสอบให้แน่ใจว่าไซต์ทำงานโดยไม่ใช้จาวาสคริปต์จากนั้นเพิ่มจาวาสคริปต์ที่เหมาะสม (การตรวจสอบด้านลูกค้าการปรับปรุง UI ฯลฯ ) เป็นการปรับปรุงที่ก้าวหน้าและดูแล SEO, ปิดการใช้งานจาวาสคริปต์และความเข้ากันไม่ได้ของเบราว์เซอร์รุ่นเก่า

มีการถามคำถามเดียวกันนี้กับ SO แต่ฉันจำความรักของฉันไม่ได้ว่าอยู่ที่ไหน


5

การใช้งาน JavaScript สามารถถูก จำกัด ในหลายกรณี:

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

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


5

" เว็บไซต์ที่ใช้ฐานข้อมูล " เป็นกุญแจสำคัญในคำตอบ มีสองวิธีในการสร้างเว็บไซต์และปริมาณของ Javascript ที่อนุญาตขึ้นอยู่กับว่าคุณกำลังใช้งานอะไรอยู่ คุณสามารถสร้าง:

  1. เว็บไซต์ที่มีเนื้อหาเป็นศูนย์กลาง ในกรณีแรกคำวิเศษคือ "การเพิ่มประสิทธิภาพแบบก้าวหน้า"; จำกัด จาวาสคริปต์สำหรับฟังก์ชันซ้ำซ้อนที่สามารถให้กับการเข้าถึงเนื้อหาแบบคลาสสิกผ่าน HTTP ธรรมดา

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

เว็บเป็นแพลตฟอร์มซอฟต์แวร์

ข้อกำหนดการเข้าถึงขั้นต่ำนั้นใช้ได้ถ้าคุณสร้างแอปพลิเคชันจริงๆ - คุณกำหนดเป้าหมายแพลตฟอร์มเฉพาะเพื่อรับฟีเจอร์ขั้นสูงที่ไม่สามารถสร้างได้ มันเหมือนกับการพัฒนาสำหรับ Python หรือ Java หรือ. Net อย่าปล่อยให้ buzzwords เช่น HTML5 และคำมั่นสัญญาของ "ทำงานได้ทุกที่" หลอกคุณ คุณสามารถมีรหัสพกพาระหว่างอุปกรณ์เท่านั้นตราบเท่าที่แพลตฟอร์มทั้งหมดได้รับการสนับสนุน การเปลี่ยนแปลงใด ๆ กับสแต็กการพัฒนาและซอฟต์แวร์จะหยุดทำงาน

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

เว็บเป็นการนำส่งเนื้อหา

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

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

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

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

  • การตรวจสอบการป้อนข้อมูล
  • อัปเดต AJAX ของเนื้อหาเพื่อการนำทางที่รวดเร็วที่สุด (ซึ่งยังคงทำงานโดยไม่มี JS)

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


3

ฉันทำงานให้กับหน่วยงานรัฐของฉันและด้วยเหตุนี้การพัฒนาส่วนใหญ่ของฉันจึงเกี่ยวข้องกับเว็บไซต์แบบโต้ตอบที่ใช้ข้อมูล ค้นหาข้อมูลเชิงประวัติแบบฟอร์มการส่งสิ่งต่าง ๆ เช่นนั้น เราใช้ Javascript ของเราให้น้อยที่สุดด้วยเหตุผลดังต่อไปนี้:

1) การตรวจสอบความถูกต้องของอินพุตแบบฟอร์มควรเกิดขึ้นที่ฝั่งเซิร์ฟเวอร์เสมอไม่เคยอยู่ที่ฝั่งไคลเอ็นต์ หากคุณพยายามตรวจสอบอินพุตของคุณในฝั่งไคลเอ็นต์แฮ็กเกอร์ทั้งหมดที่ต้องทำคือสร้างสำเนาของหน้าเว็บของคุณและเขียนจาวาสคริปต์ใหม่เพื่ออนุญาตสิ่งที่เขาต้องการส่งให้คุณ (SQL injection เป็นต้น) การตรวจสอบของคุณจะต้องเกิดขึ้นที่ไหนสักแห่งภายใต้การควบคุมพิเศษของคุณเช่นบนเซิร์ฟเวอร์

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

3) Javascript ซึ่งเป็นเครื่องมือที่ได้รับความนิยมจาก "นักพัฒนาเว็บ" แทนที่จะเป็นโปรแกรมเมอร์ฝั่งเซิร์ฟเวอร์มีแนวโน้มที่จะน่าเกลียด และนักออกแบบ (ซึ่งเป็นสิ่งที่นักพัฒนาเว็บมักจะเป็นถ้าคุณต้องการที่จะซื่อสัตย์) มักจะไม่เห็นปัญหาในการดาวน์โหลด "สคริปต์" จากสถานที่สุ่มบนเว็บ พวกเขาพูดถึงสิ่งต่าง ๆ เช่น "ทำไมต้องคิดค้นล้อใหม่" และ "ไม่ได้คิดค้นที่นี่" ดังนั้นแทนที่จะเขียนโค้ดของตัวเองพวกเขามักจะออกไปจับอะไรบางอย่างจากเว็บไซต์อื่นโดยคิดว่าถ้ามันบนอินเทอร์เน็ตมันเป็นเกมที่ยุติธรรม มีปัญหาสองประการคือก) พวกเขาอาจโพสต์ Javascript ที่เป็นอันตรายโดยไม่ได้ตั้งใจซึ่งทำให้คุณต้องใช้เวลาสักครู่หนึ่งในการจับและ B) พวกเขาอาจเรียกใช้ลิขสิทธิ์ของบุคคลอื่นและทำให้คุณถูกฟ้องร้อง ทั้งสองสถานการณ์จะต้องหลีกเลี่ยง

โดยทั่วไปแล้ว Javascript เป็นความคิดที่ไม่ดี รหัสฝั่งไคลเอ็นต์ประเภทใด ๆ เป็นความคิดที่ไม่ดี ฝั่งไคลเอ็นต์ควรมีภาษามาร์กอัปและ CSS เท่านั้น ปล่อยให้ฝั่งเซิร์ฟเวอร์จัดการกับการยกของหนัก


2

มันขึ้นอยู่กับ.

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

ตัวอย่างรวมถึง:

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

กฎง่ายๆของฉันคือถ้ามันเป็นเว็บแอปพลิเคชันสำหรับผู้ใช้ทั่วไป (ในบ้านชุมชนสิ่งนั้น) จากนั้นการพึ่งพาจาวาสคริปต์ก็โอเค แต่ถ้าคุณต้องการให้ผู้อื่นสามารถเข้าถึงและค้นหาได้ ฟังก์ชันการทำงานควรทำงานได้อย่างไร้ที่ติหากไม่มี javascript และคุณควรล้มเหลวอย่างงดงามเมื่อคุณต้องการแทนที่จะแสดงพฤติกรรมที่ 'ไม่ได้กำหนด'


2

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

นักพัฒนาหลักสูตรสามารถทำทั้งสองเวอร์ชันสำหรับผู้ใช้ JS และผู้ที่ไม่ใช่ JS แต่ในกรณีส่วนใหญ่มีราคาแพงมากและไม่คุ้มค่า 1-2% ของผู้ชมเว็บไซต์ (ถ้าคุณไม่ใช่ Google แน่นอน)

ดังนั้นคำตอบของฉันจะไม่ใช่ - JavaScript คือคำตอบสำหรับคำถามผู้ใช้จำนวนมากทำไมฉันไม่ควรใช้


1

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

การสร้างแอปพลิเคชันสำหรับลูกค้าไม่เพียง แต่มีความเร็วและความปลอดภัยอีกต่อไป ลูกค้าต้องการเน้นการใช้งานและการใช้เทคโนโลยี AJAX หากไม่มีการใช้งาน JavaScript มันจะไม่ทำงานได้ดี PostBacks ตลอดเวลาสำหรับงานที่มีขนาดเล็กมากเช่นการคำนวณหรืออะไรทำนองนั้นสำหรับ บริษัท ส่วนใหญ่ไม่ใช่ตัวเลือก

เมื่อเราคิดถึงสถานการณ์ปัจจุบันใน บริษัท ใหญ่ ๆ ก็มีตัวบ่งชี้อีกอย่างหนึ่งที่ว่าทำไมจาวาสคริปต์ถึงเป็นสิ่งที่ต้องมี ดูระบบ CMS ที่ใช้งานอยู่ในปัจจุบัน ส่วนใหญ่ใช้ Microsoft SharePoint หรือ Adobe CQ บางตัวใช้ Drupal หรืออื่น ๆ เป็นต้น ระบบทั้งหมดนี้ใช้ JavaScript หากไม่มี javascript แอปพลิเคชันส่วนใหญ่จะไม่ทำงานตามที่ผู้ใช้คาดหวัง


0

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

เครือข่ายองค์กรจำนวนมากตอบสนองโดยการปิดใช้งาน JS ซึ่งเป็นนโยบายที่ (ถูกหรือผิด) ยังคงมีอยู่ในหลายองค์กรในทุกวันนี้

ค่อนข้างง่ายฉันขอแนะนำว่าไม่ควรใช้ไซต์เพื่อใช้งาน JS


3
ฉันคิดว่า optinion นี้ล้าสมัยไปหมดแล้ว บริษัท ส่วนใหญ่ใช้ SharePoint หรือ CQ สำหรับโซลูชั่นอินทราเน็ต ทั้งสองระบบใช้งานจริงกับ JS
Smokefoot

ฉันปฏิเสธ "บริษัท ส่วนใหญ่" อย่างแน่นอนใช้ Sharepoint ... และแม้กระทั่งสำหรับ บริษัท ที่อนุญาตให้ใช้ JS ภายในการตั้งค่าอินทราเน็ตอาจแตกต่างจากภายนอก
แอนดรู

0

ดังที่คำอธิบายส่วนใหญ่ที่นี่อธิบายการใช้javascriptไม่มีอันตราย หากคุณต้องการบันทึกซอร์สโค้ดและโค้ดที่ดูยุ่งให้ลองใช้วิธีcoffee-scriptที่จะช่วยประหยัดการพิมพ์ลงjavascriptได้มาก

http://coffeescript.org/

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