Hace unos años, siempre y cuando escribamos JavaScript, debemos usar varias funciones de uso común, como AddEventListener y AdjectEvent, que no son para tecnologías y funciones avanzadas, sino solo algunas tareas básicas, y la razón es causada por las diferencias entre varios navegadores. A medida que pasa el tiempo, la tecnología está mejorando constantemente, todavía hay algunas funciones de JavaScript que son esenciales para casi todos los programadores web, ya sea para el rendimiento o para la funcionalidad.
Función de desbloqueo que previene las llamadas de alta frecuencia
Esta función de desbordamiento es una función esencial que mejora el rendimiento para aquellos que realizan tareas basadas en eventos. Si no usa la función de reducción de escala cuando usa desplazamiento, cambio de tamaño, clave* y otros eventos para activar tareas, cometerá un error importante. La siguiente función de desbloqueo de la función de frecuencia hacia abajo puede hacer que su código sea eficiente:
// Devuelve una función, que, siempre que continúe invocando, no se activará //. Se llamará a la función después de que deje de ser llamado // n milisegundos. Si se pasa `inmediato`, active la función en el borde de ataque //, en lugar del debetido de la función de finalización (func, Wait, inmediato) {Var TimeOut; function de return () {var context = this, args = argumentos; var más tarde = function () {timeOut = null; if (! inmediato) func.apply (contexto, args); }; var callnow = inmediato &&! TimeOut; ClearTimeOut (tiempo de espera); tiempo de espera = setTimeOut (más tarde, espera); if (callnow) func.apply (contexto, args); };}; // useVar myEfftientfn = Debuncion (function () {// Todas las cosas impositivas que haces}, 250); Window.adDeventListener ('RESEZ', MYEFFIENTFN);La función de desbloqueo solo permite que la función de devolución de llamada que proporciona ejecuta una vez dentro de un intervalo de tiempo determinado, reduciendo así su frecuencia de ejecución. Dichas restricciones son particularmente importantes cuando se encuentran eventos desencadenados de alta frecuencia.
Establecer la función de detección del ciclo de tiempo/frecuencia
La función de desbloqueo mencionada anteriormente se desencadena con la ayuda de un evento. Pero a veces no hay tal evento disponible, por lo que solo podemos escribir una función nosotros mismos para verificarlo de vez en cuando.
encuesta de funciones (fn, devolución de llamada, err, tiempo de espera, intervalo) {var starttime = (new date ()). gettime (); var pi = window.setinterval (function () {if (math.floor (((nueva fecha) .getTime () - starttime) / 1000) <= timeout) {if (fn ()) {callback ();}} else {Window.clearinterval (pi); err ();}}, interval)}Una vez que la función que prohíbe las llamadas repetidas y solo permite la ejecución una vez
Muchas veces, solo queremos que se ejecute alguna acción una vez, al igual que usamos Onload para limitarla para que se ejecute solo una vez cuando se complete la carga. La siguiente función permitirá que su operación se ejecute una vez y no se ejecutará repetidamente.
función una vez (fn, context) {resultado var; Función de retorno () {if (fn) {result = fn.apply (context || this, argumentos); fn = nulo; } resultado de retorno; };} // useVar canonylyfireonce = una vez (function () {console.log ('Fired!');}); CanonlyFireonEnce (); // "¡Despedido!" canonylyfireonce (); // nadaEsta vez la función puede garantizar que la función que proporciona se ejecuta solo una vez y evitar la ejecución repetida.
Obtenga la dirección absoluta de un enlace getAbsoluteurl
Obtener la dirección absoluta del enlace no es tan simple como piensas. La siguiente es una función muy práctica que puede obtener la dirección absoluta basada en la dirección relativa que ingresó:
var getAbSoluteUrl = (function () {var a; return function (url) {if (! a) a = document.createElement ('a'); a.href = url; return a.href;};}) (); // usegetabsoluteurl ('/something');Aquí usamos la etiqueta href para generar una URL absoluta completa, que es muy confiable.
Determinar si una función JavaScript es una función nativa del sistema
Muchos scripts JS de terceros introducirán nuevas funciones en variables globales, y algunos incluso sobrescribirán las funciones nativas del sistema. El siguiente método es verificar si se trata de una función nativa:
; (function () {// utilizado para resolver el interno `[[class]]` de valores var toString = object.prototype.ToString; // utilizado para resolver la fuente descompilada de funciones var fnToString = function.prototype.ToString; // usado para detectar constructores de host (safari> 4; realmente típedos específico específico) var rehostador = / / /[objeto objeto [objeto objeto . +? Constructor/] $/; .replace (/[.*+?^$ {} () | [/] ////]/g, '// $ &') // Reemplazar las menciones de `toString` con`.*? ` .replace (/toString | (function).*? (? =// () | for. Renative.test (fnToString.call (value)) // Fallback a un objeto de host porque algunos entornos representarán // cosas como matrices tipeados como métodos DOM que no pueden conformarse con el patrón nativo / (valor). isnative;} ()); // useSnative (alerta);Aunque este método no es tan conciso, ¡aún puede completar la tarea!
Cree nuevas reglas CSS con JavaScript InserTrule
A veces usamos un selector CSS (como document.Queryselectorall) para obtener un nodista y luego modificar los estilos a cada uno de ellos a su vez. De hecho, este no es un enfoque eficiente. Es un enfoque eficiente para crear una nueva regla de estilo CSS usando JavaScript:
// construir una hoja de mejor hoja de hoja = (function () {// construir estilo var style = document.createElement ('style'); style.setattribute ('medios', 'pantalla'); style.appendChild (document.createTextNode ('')); document.head.appendChild (style);/ Construir y devolver una sola función de retorno (regla) style.sheet.cssrules.length);Estas prácticas son muy eficientes. En algunos escenarios, como cuando se usa AJAX para cargar un nuevo HTML, no necesita operar el contenido HTML recién cargado.
Determinar si los elementos de la página web tienen ciertos atributos y estilos Matchesselector
función matchesselector (el, selector) {var p = element.prototype; var f = p.matches || P.WebkitMatchSesselector || P.MozMatchesselector || P.MsMatchesselector || función (s) {return [] .indexof.call (document.queryselectorall (s), this)! == -1; }; return f.call (el, selector);} // usaGematchesselector (document.getElementById ('myDiv'), 'div.someselector [some-attribute = true]')Estas 7 funciones de JavaScript son todo lo que cada programador web debe saber cómo usarlas.
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.