Para los programadores web, tratar con formatos de URL simples puede ser una pesadilla. Solo imagine que hay muchos componentes en una URL que afectarán su análisis:
・・・ ¿Comienza con / personaje?
・・・ ¿Empieza con //
・・・ ¿Comienza con un?
・・・ ¿Comienza con #?
…etc
Cuando desea la dirección absoluta de esta dirección, ¿cómo juzgar el procesamiento y el análisis? Puede ser del protocolo HTTP o del protocolo HTTPS. Es un dolor de cabeza. Afortunadamente, tenemos una manera fácil de determinar su dirección absoluta, ¡que es crear un elemento A para ayudar a completar esta tarea!
Código JavaScript
Aquí usaré una función JavaScript que devuelva la función. Hay muchos beneficios al hacer esto, que se discutirán a continuación.
var getAbSoluteUrl = (function () {var a; return function (url) {if (! a) a = document.createElement ('a'); a.href = url; return a.href;};}) ();Esta función parece un poco complicada. Primero asigna una función a una variable, y hay otra función en esta función y una variable predefinida. Alguien puede preguntar por qué una función necesita ser integrada y si se puede simplificar a esto:
var getAbSoluteUrl = function (url) {var a = document.createElement ('a'); a.href = url; regresar a.href;}Por supuesto, este método de escritura simple no puede calcularse mal, pero no es lo suficientemente perfecto, porque aunque la práctica de incrustar una función aumenta la complejidad del código, puede garantizar que el elemento A se cree solo una vez y pueda reutilizarse, ahorrando tiempo y memoria.
Tal vez alguien haga otra pregunta, preguntándose si hay un juicio si en la segunda función anidada, por qué es necesario y por qué no escribirla de la siguiente manera:
var getAbSoluteUrl = (function () {var a = document.createElement ('a'); return function (url) {a.href = url; return a.href;};}) ();Esta es naturalmente una forma de ejecutar, y no habrá errores en la función. Pero lo sutil es que si no hay una declaración de juicio si se define, al definir esta función, incluso si la función no es llamada por ningún código, el elemento A se inicializará. Con la declaración IF Sude, el elemento A se creará cuando realmente se use, y no habrá desperdicio de memoria y CPU.
Ok, con este método, no importa en qué tipo de dirección de URL la pase, devolverá la dirección absoluta.
¡Todos, intentándonos!
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.