ใน JS หน่วยความจำบางอย่างจะต้องดำเนินการเพียงครั้งเดียวเช่นการตรวจจับประเภทเบราว์เซอร์เป็นฟังก์ชั่นที่ใช้กันมากที่สุดเพราะเมื่อเราใช้ AJAX เราต้องตรวจจับ XHR ในตัวของเบราว์เซอร์ เราสามารถบันทึกประเภทในระหว่างการตรวจจับครั้งแรกและในอนาคตเราไม่จำเป็นต้องตรวจจับประเภทเบราว์เซอร์อีกต่อไปเมื่อใช้ AJAX แม้ว่าจะมีเพียงหนึ่งเดียวถ้าอยู่ใน JS แต่ก็มีประสิทธิภาพมากกว่าข้อความโดยไม่ต้องใช้ IF
วิธี AJAX ปกติ
การคัดลอกรหัสมีดังนี้:
-
* JS LAZY FUNCTION
-
ฟังก์ชั่น ajax () {
if (typeof xmlhttprequest! = "undefined") {
ส่งคืน XMLHTTTPREQUEST ใหม่ ();
} อื่นถ้า (typeof activexobject! = "undefined") {
if (typeof arguments.callee.activexstring! = "String") {
var version = ["msxml2.xmlhttp.6.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"];
สำหรับ (var i = 0, k = version.length; i <k; i ++) {
พยายาม{
ใหม่ ActiveXObject (เวอร์ชัน [i]);
อาร์กิวเมนต์ callee.activexstring = เวอร์ชัน [i];
หยุดพัก;
} catch (ex) {
โยนอดีต;
-
-
-
ส่งคืน ActiveXObject ใหม่ (อาร์กิวเมนต์ callee.activexstring);
}อื่น{
โยน "ไม่มีวัตถุ XHR";
-
-
ทุกครั้งที่มีการเรียกฟังก์ชั่น Ajax () การตรวจสอบ XHR ในตัวของเบราว์เซอร์จะไม่มีประสิทธิภาพ
วิธีใช้วิธีการขี้เกียจ
การคัดลอกรหัสมีดังนี้:
-
* JS LAZY FUNCTION
-
ฟังก์ชั่น ajax () {
if (typeof xmlhttprequest! = "undefined") {
ajax = function () {
ส่งคืน XMLHTTTPREQUEST ใหม่ ();
-
} อื่นถ้า (typeof activexobject! = "undefined") {
ajax = function () {
if (typeof arguments.callee.activexstring! = "String") {
var version = ["msxml2.xmlhttp.6.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"];
สำหรับ (var i = 0, k = version.length; i <k; i ++) {
พยายาม{
var xhr = new ActiveXObject (เวอร์ชัน [i]);
อาร์กิวเมนต์ callee.activexstring = เวอร์ชัน [i];
กลับ XHR;
} catch (ex) {
โยนอดีต;
-
-
-
ส่งคืน ActiveXObject ใหม่ (อาร์กิวเมนต์ callee.activexstring);
-
}อื่น{
ajax = function () {
โยน "ไม่มีวัตถุ XHR";
-
-
return ajax ();
-
ในวิธีการขี้เกียจที่สองแต่ละสาขาของ IF จะกำหนดค่าให้กับตัวแปร AJAX () โดยเขียนทับฟังก์ชั่นดั้งเดิมอย่างมีประสิทธิภาพและฟังก์ชั่นใหม่เรียกว่าในขั้นตอนสุดท้าย ครั้งต่อไปที่ Ajax () เรียกว่าตัวแปรจะถูกเรียกโดยตรง
โฟกัสการเพิ่มประสิทธิภาพ
ในการเรียกใช้รหัสเฉพาะเฉพาะการโทรที่เกิดขึ้นจริงจะถูกเรียกใช้งานในขณะที่ไลบรารี JS บางตัวตรวจจับเบราว์เซอร์ที่จุดเริ่มต้นและตั้งไว้ล่วงหน้า
เนื่องจากการตัดสินที่ซับซ้อนความเร็วในการวิ่งครั้งแรกช้า แต่การรันหลายเล่มที่ตามมาจะเร็วขึ้น
บางครั้งหลังจากเขียนรหัสเป็นเวลานานคุณจะไม่สามารถเปลี่ยนแปลงได้ คุณต้องคิดถึงวิธีการทำให้โปรแกรมทำงานเร็วขึ้นและมีประสิทธิภาพมากขึ้น โปรแกรมที่เขียนภายใต้ความคิดดังกล่าวเป็นปกแข็งและจะไม่สร้างรหัสขยะที่ไม่จำเป็น นี่ไม่ใช่วิธี OO ขนาดที่เหมาะกับทุกคน ในความเป็นจริงหลายส่วนของรหัสมีชีวิตอยู่และผู้คนมีชีวิตอยู่มากยิ่งขึ้น