


Si le titre est trop long, utilisez javascript pour intercepter la chaîne par les astuces bytes_javascript
En tant que développeur front-end, je rencontre souvent dans l'affichage d'une page Web que le titre est trop long et que les chaînes doivent être interceptées. S'il est implémenté à l'aide de CSS, il existe divers problèmes de compatibilité et divers pièges.
Demander au programme d'arrière-plan de le couper et trouver diverses excuses pour demander à l'arrière-plan de le couper par octets revient à tuer l'arrière-plan. En fin de compte, il ne peut être coupé qu'en fonction de la longueur du caractère, et le résultat final n'aura pas l'air bon. S'il n'est pas correct, il vaut mieux revenir en arrière et ajuster le CSS et ajuster la compatibilité
Les étudiants front-end qui ont les impressions ci-dessus peuvent l'aimer en silence ;
Je suis récemment tombé sur un projet où le backend ne fournissait qu'une interface (json), et le rendu des données et la liaison des données de toutes les pages étaient laissés au front-end. Enfin, quel que soit le référencement, toute l'initiative sur la page était entre mes mains et j'ai rencontré par inadvertance le vieux problème de l'interception d'octets.
Il existe une méthode Javascript pour obtenir simplement la longueur des octets qui circulent sur Internet :
String.prototype.Blength = function(){//Renvoyer la longueur de la chaîne en octets
return this.replace(/([^x00-xFF])/g , "aa"). length;
};
C'est très simple. Les caractères plus grands que le code ASCII sont comptés pour deux octets. Bien que ce ne soit pas correct à proprement parler, nous l'utilisons pour vous aider. l'effet d'affichage. Ce n'est pas bien si c'est vraiment strict
Mais j'ai toujours l'impression que c'est juste un peu opportuniste, et ce n'est pas bien d'utiliser des expressions régulières, qui prennent du temps. deux lignes de code, j'ai donc décidé d'utiliser la méthode normale Calcul :
function getBlength(str){
for (var i=str.length;i--;){
n = str.charCodeAt(i) >
}
return n;
}
Je n'ai pas étendu la méthode au prototype de l'objet String, ou en raison de problèmes d'efficacité, voici le code de test :
//Développer le prototype de String
String.prototype.Blength = function () {
var str = this,
n = 0;
for (var i = str.length; i--; ) {
n = str.charCodeAt(i) > 255 ? 2 : 1;
}
return n ;
//Ajouter une méthode à l'objet String
String.getBlength = function (str ) {
for (var i = str.length, n = 0; i--; ) {
n = str.charCodeAt(i) > 2 : 1; return n;
}
//Construisez d'abord une longue chaîne mixte chinoise et anglaise
var str = "interception efficace des chaînes par la méthode javascript getBlengthjavascript interception efficace des chaînes par la méthode des octets getBlength"; str = str.replace(/./g, str).replace(/./g , str);
console.log("La longueur de la chaîne créée est : ", str.length)
console .log("-------------Le test commence-- ------------")
console.log("str.Blength() > > ",str.Blength())
console.log("String.getBlength (str) >> ",String.getBlength(str))
console.log("--Le test d'efficacité démarre --")
var time1 = new Date()
for (var i=0;istr.Blength()
}
console .log("Blength prend du temps : ",new Date() - time1);
var time2 = new Date()
for(var i=0;iString.getBlength(str)
}
console.log("getBlength consume When: ",new Date() - time2
Le résultat n'est pas du tout inefficace); . Quant à la raison, il se peut que du temps soit consacré à la récupération de la chaîne prototype. Je n'y suis pas allé, je la connais. Laissez-moi un message :
La longueur de la chaîne créée est. : 314432
Copier le code
Maintenant pour intercepter La fonction de base de string est maintenant disponible, car dans ce cas le la longueur maximale des octets occupés par un caractère est de 2, il est donc préférable d'utiliser la méthode binaire pour trouver la position d'interception appropriée.
Donnez-moi une fonction d'interception qui devrait être assez efficace :
Copiez le code
//Calcul simple de la longueur d'octet
String.getBlength = function (str) {
for (var i = str.length, n = 0; i--; ) {
n = str.charCodeAt(i) > 2 : 1;
}
return n;
//Tronque la chaîne en fonction des octets spécifiés
String.cutByte = function (str,len,endstr){
var len = len
,endstr = typeof(endstr) == 'indéfini' "..." : endstr.toString(); a ){ var n = a / 2 | 0; return (n > 0 ? n : 1)} //Utilisé pour la recherche binaire
if(!(str "").length || !len || len< ;=0){return "";}
if(this.getBlength(str) var lenS = len - this.getBlength(endstr)
,_lenS = 0
, _strl = 0
while (_strl var _lenS1 = n2(lenS -_strl)
_strl = this.getBlength(str.substr(_lenS,_lenS1))
_lenS = _lenS1
}
return str.substr(0,_lenS-1) endstr
}
Testez la chaîne ci-dessus. Plus elle est longue, plus le chargement prend du temps. Essayez de la couper à une longueur de 20W :
console.log("String. cutByte('1 commence par 1',6,'...') >> ",String.cutByte('1 commence par 1',6,'...'))
console.log("String .cutByte(str,12,'...') >> ",String.cutByte(str,12,'...'))
console.log( "String.cutByte(str,13, '..') >> ",String.cutByte(str,13,'..'))
console.log("String.cutByte(str,14, '.') >> " ,String.cutByte(str,14,'.'))
console.log("String.cutByte(str,15,'') >> ",String. cutByte(str,15,'') )
console.log("--Le test d'efficacité démarre--")
var time1 = new Date()
for(var i=0;iString. cutByte(str,200000,'...')
}
console.log("Consommation de temps :",new Date() - time1); 🎜>
Résultat de sortie :
La longueur de la chaîne créée est : 314432 La longueur en octets est : 425408
Copier le code
--Le test d'efficacité démarre--
Prend du temps : 155
En fait, changer la longueur des caractères interceptés à 30W et 40W ne sera pas très différent face à la méthode binaire, tout cela est au même niveau
Par rapport au calcul fastidieux précédent de la longueur d'octet, en utilisant. la méthode binaire pour rechercher et intercepter ne consomme que moins de deux octets de calculs de longueur
Enfin, étudiants, venez défier votre efficacité !

Les principales utilisations de JavaScript dans le développement Web incluent l'interaction client, la vérification du formulaire et la communication asynchrone. 1) Mise à jour du contenu dynamique et interaction utilisateur via les opérations DOM; 2) La vérification du client est effectuée avant que l'utilisateur ne soumette les données pour améliorer l'expérience utilisateur; 3) La communication de rafraîchissement avec le serveur est réalisée via la technologie AJAX.

Comprendre le fonctionnement du moteur JavaScript en interne est important pour les développeurs car il aide à écrire du code plus efficace et à comprendre les goulots d'étranglement des performances et les stratégies d'optimisation. 1) Le flux de travail du moteur comprend trois étapes: analyse, compilation et exécution; 2) Pendant le processus d'exécution, le moteur effectuera une optimisation dynamique, comme le cache en ligne et les classes cachées; 3) Les meilleures pratiques comprennent l'évitement des variables globales, l'optimisation des boucles, l'utilisation de const et de locations et d'éviter une utilisation excessive des fermetures.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.