สำหรับโปรแกรมเมอร์เว็บการจัดการกับรูปแบบ URL ที่เรียบง่ายอาจเป็นฝันร้าย แค่คิดว่ามีองค์ประกอบมากมายใน URL ที่จะส่งผลกระทบต่อการวิเคราะห์ของคุณ:
・・・ เริ่มต้นด้วย / ตัวละคร
・・・ เริ่มต้นด้วย //
・・・ เริ่มต้นด้วย?
・・・ เริ่มต้นด้วย #
… ฯลฯ
เมื่อคุณต้องการที่อยู่ที่แน่นอนของที่อยู่นี้วิธีตัดสินการประมวลผลและการแยกวิเคราะห์? มันอาจมาจากโปรโตคอล HTTP หรือจากโปรโตคอล HTTPS มันเป็นอาการปวดหัว โชคดีที่เรามีวิธีที่ง่ายในการกำหนดที่อยู่ที่แน่นอนซึ่งคือการสร้างองค์ประกอบ A เพื่อช่วยในการทำงานนี้ให้เสร็จ!
รหัส JavaScript
ที่นี่ฉันจะใช้ฟังก์ชัน JavaScript ที่ส่งคืนฟังก์ชัน มีประโยชน์มากมายในการทำสิ่งนี้ซึ่งจะกล่าวถึงด้านล่าง
var getAbSoluteUrl = (ฟังก์ชัน () {var a; ฟังก์ชั่นการส่งคืน (url) {ถ้า (! a) a = document.createElement ('a'); a.href = url; return a.href;};}) ();ฟังก์ชั่นนี้ดูซับซ้อนเล็กน้อย ก่อนอื่นจะกำหนดฟังก์ชันให้กับตัวแปรและมีฟังก์ชั่นอื่นในฟังก์ชั่นนี้และตัวแปรที่กำหนดไว้ล่วงหน้า บางคนอาจถามว่าทำไมต้องมีการฝังฟังก์ชั่นและไม่ว่าจะง่ายขึ้นกับสิ่งนี้:
var getAbSoluteUrl = function (url) {var a = document.createElement ('a'); A.href = url; return a.href;}แน่นอนว่าวิธีการเขียนอย่างง่ายนี้ไม่สามารถคำนวณผิดได้ แต่ก็ไม่สมบูรณ์แบบเพียงพอเพราะแม้ว่าการฝึกฝนการฝังฟังก์ชั่นจะเพิ่มความซับซ้อนของรหัส แต่ก็สามารถมั่นใจได้ว่าองค์ประกอบ A ถูกสร้างขึ้นเพียงครั้งเดียวและสามารถนำกลับมาใช้ใหม่ได้ประหยัดเวลาและหน่วยความจำ
บางทีใครบางคนอาจถามคำถามอื่นโดยสงสัยว่ามีการตัดสินในฟังก์ชั่นที่สองที่ซ้อนกันทำไมจึงจำเป็นต้องใช้และทำไมไม่เขียนดังนี้:
var getAbSoluteUrl = (ฟังก์ชัน () {var a = document.createElement ('a'); ฟังก์ชั่นการส่งคืน (url) {a.href = url; return a.href;};}) ();นี่เป็นวิธีการทำงานตามธรรมชาติและจะไม่มีข้อผิดพลาดในฟังก์ชั่น แต่สิ่งที่บอบบางคือถ้าไม่มีถ้าคำตัดสินเมื่อกำหนดฟังก์ชั่นนี้แม้ว่าฟังก์ชั่นจะไม่ถูกเรียกด้วยรหัสใด ๆ องค์ประกอบ A จะเริ่มต้น ด้วยคำแถลง IF IF Judgement องค์ประกอบ A จะถูกสร้างขึ้นเมื่อมีการใช้งานจริงและจะไม่มีการสูญเสียหน่วยความจำและ CPU
ตกลงด้วยวิธีนี้ไม่ว่าที่อยู่ URL ประเภทใดที่คุณส่งผ่านมันจะส่งคืนที่อยู่สัมบูรณ์
ทุกคนมาลองกันเถอะ!
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น