เรารู้ว่าใน JS การต่อสายของสตริงเป็นหนึ่งในการดำเนินการที่มีประสิทธิภาพต่ำที่สุด
ตัวอย่างเช่น:
การคัดลอกรหัสมีดังนี้:
var text = "hello";
ข้อความ+= "โลก!";
เบราว์เซอร์ต้นไม่ได้เพิ่มประสิทธิภาพการดำเนินการนี้
เนื่องจากสตริงไม่เปลี่ยนรูปนี้หมายถึงการสร้างสตริงกลางเพื่อจัดเก็บผลลัพธ์ของการเชื่อมต่อ บ่อยครั้งที่การสร้างและทำลายสตริงในพื้นหลังประสิทธิภาพของการ จำกัด นั้นแย่มาก
ดังนั้นการเพิ่มประสิทธิภาพสามารถทำได้โดยใช้วัตถุอาร์เรย์
ตัวอย่างเช่น:
var buffer = [], i = 0; บัฟเฟอร์ [i ++] = "สวัสดี"; // การเพิ่มองค์ประกอบผ่านค่าดัชนีที่สอดคล้องกันเร็วกว่าบัฟเฟอร์วิธีการพุช [i ++] = "โลก!"; var text = buffer.join ("");ในเบราว์เซอร์ต้นสตริงกลางไม่ได้ถูกสร้างและทำลายและในกรณีที่มีการเชื่อมต่อสตริงจำนวนมากเทคนิคนี้ได้พิสูจน์ได้เร็วกว่าการใช้วิธีการเพิ่มเติม
ทุกวันนี้การเพิ่มประสิทธิภาพเบราว์เซอร์ของสตริงได้เปลี่ยนสถานการณ์ของการเชื่อมต่อสตริง Safari, Opera, Chrome, Firefox และ IE8 ทั้งหมดแสดงประสิทธิภาพที่ดีขึ้นเมื่อใช้ตัวดำเนินการเพิ่มเติม อย่างไรก็ตามรุ่นก่อนที่ IE8 ยังไม่ได้รับการปรับให้เหมาะสมดังนั้นวิธีการอาร์เรย์ยังคงถูกต้อง นี่ไม่ได้หมายความว่าเมื่อเชื่อมต่อสตริงเราจำเป็นต้องทำการตรวจจับเบราว์เซอร์ สิ่งที่คุณต้องพิจารณาเมื่อตัดสินใจว่าจะเชื่อมต่อคือขนาดและจำนวนสตริง
เมื่อสตริงมีขนาดค่อนข้างเล็ก (น้อยกว่า 20 อักขระ) และจำนวนการเชื่อมต่อมีขนาดเล็ก (น้อยกว่า 1,000) เบราว์เซอร์ทั้งหมดสามารถเชื่อมต่อได้อย่างง่ายดายในเวลาน้อยกว่า 1 มิลลิวินาทีโดยใช้ตัวดำเนินการเพิ่มเติม เมื่อเพิ่มจำนวนหรือขนาดของสตริงประสิทธิภาพใน IE7 จะลดลงอย่างมีนัยสำคัญ เมื่อขนาดสตริงเพิ่มขึ้นความแตกต่างของประสิทธิภาพระหว่างตัวดำเนินการเพิ่มเติมและเทคนิคส่วนประกอบใน Firefox จะเล็กลง เมื่อจำนวนสตริงเพิ่มขึ้นความแตกต่างของประสิทธิภาพระหว่างตัวดำเนินการเพิ่มเติมและเทคนิคส่วนประกอบใน Safari จะเล็กลง ผู้ประกอบการเสริมใน Chrome และ Opera ยังคงเป็นผู้นำเสมอเมื่อเปลี่ยนจำนวนหรือขนาดของสตริง
ดังนั้นเนื่องจากประสิทธิภาพที่ไม่สอดคล้องกันของแต่ละเบราว์เซอร์การเลือกเทคโนโลยีจึงขึ้นอยู่กับสถานการณ์จริงและเบราว์เซอร์ที่คุณกำลังเผชิญอยู่
ในกรณีส่วนใหญ่ผู้ให้บริการเพิ่มเติมเป็นที่ต้องการ; เทคโนโลยีอาร์เรย์คุ้มค่าถ้าผู้ใช้ส่วนใหญ่ใช้ IE6 หรือ 7 และมีสตริงขนาดใหญ่หรือจำนวนมาก
โดยทั่วไปหากเป็นสตริงความหมายไม่ควรใช้อาร์เรย์เช่น:
'สวัสดีฉันชื่อ' + ชื่อ;
หากสตริงเป็น "ซ้ำของสถานการณ์ที่คล้ายกัน" ขอแนะนำให้ใช้อาร์เรย์เช่น:
var array = []; สำหรับ (i = 0; i <length; i ++) {array [i] = '<li>' + list [i] + '</li'>; } document.getElementById ('ที่ไหนสักแห่ง'). innerhtml = array.join ('/n');นั่นคือทั้งหมดสำหรับการเปรียบเทียบประสิทธิภาพของการเชื่อมต่อสตริง JS ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน