2016-07-27 5 views
0

Je voudrais rendre mon script plus efficace et tout en regardant mon script qui est assez grand, je me rends compte que nT.dS[v] est répété assez souvent. J'ai essayé de le redéfinir de plusieurs façons, mais aucune n'a fonctionné, alors je me demandais si l'un d'entre vous saurait le faire.Javascript - Raccourcissez les ID pour un script plus efficace

J'ai besoin que le raccourcissement soit global. Comme je le montre, la valeur est déjà raccourcie (et fonctionne bien), mais elle peut être combinée dans un autre raccourci pour inclure l'ID de formulaire nT et l'ID d'entrée dS, car c'est le centre d'attention du programme.

<script id="jsGlobals"> 
var v = 'value'; // [v] - Global variable in HTML 
... 
... 
... 
</script> 

<script id="jsCompute"> 
function compute(nT) { 
var sTr = nT.dS[v]; // nT is formID and dS is inputID. [v] replaces .value 
var q = sTr.toUpperCase(); 
    if(q == "1") nT.dS[v] = dS116[v] //dS116 in input 
    if(q == "2") nT.dS[v] = dS117[v] //ds117 is input 
else nT.dS[v] = eval(nT.dS[v]) ; 
} 

some other functions 

some other functions 
</script> 
+2

Re * « Hé les gars (et filles) :) » * deux choses: 1. S'il vous plaît ne pas lancer « filles » comme des citoyens de seconde classe en les mettant entre parenthèses, il est une forme de casual exclusion qui n'est pas utile. 2. Nous ne faisons pas "salut" et "merci" sur SO. –

+0

Il semble que votre code fonctionne actuellement, et vous cherchez à l'améliorer. Généralement, ces questions sont trop controversées pour ce site, mais vous pourriez trouver plus de chance à [CodeReview.SE] (// codereview.stackexchange.com/tour). N'oubliez pas de lire [leurs exigences] (// codereview.stackexchange.com/help/on-topic) car ils sont un peu plus strictes que ce site. – FrankerZ

+0

S'il vous plaît ne pas poser mes questions de cette façon, T.J. J'ai mieux à faire que de discuter de gars au pluriel, non anglophone parlant et le manque de courtoisie générale. Personnellement j'apprécie la courtoisie générale quand les gens passent du temps à répondre, donc à moins que ce soit dans les règles ici, ne supprime pas ou réécrit mes questions pour être impoli, et couronner le tout en prétendant que je jette les femmes en deuxième classe. Ne fais pas ça. –

Répondre

0

Ok, je ne l'ai pas résolu comment incorporer [v] (abréviation de .value) combiné avec identifiant globalement dans le script, mais raccourcir les doubles numéros d'identification à la portée locale a bien fonctionné et donne une réduction de 20%. Ecrire juste ceci pour d'autres qui pourraient le trouver utile.

Donc en bref, je peux ajouter a =nT.dS; après fonction de démarrage puis écrire: if(q == "1") a[v] = dS116[v] au lieu de: if(q == "1") nT.dS[v] = dS116[v] vanille: if(q == "1") nT.dS.value = dS116.value

Pourquoi est-ce important? Eh bien, fondamentalement, vous pouvez ajouter une question de millions et répond dans un seul fichier, traverser le fonctionnement du navigateur, html5 ... et toujours rester en dessous de un mégaoctet ou deux. Construisez votre propre moteur de recherche (fixe ou sélection d'entrée) sans sql. Ces 20% totalisent bientôt beaucoup de millisecondes de chargement, et des kilo-octets dans le stockage de fichiers.

réponse texte au lieu d'une réponse d'entrée d'utilisateur local stocké (ou entrée robotique) ressemblerait à ceci:

if(q == "test") a[v] = "Hell yeah! Love it!" 

vanille ressemblerait à ceci:

if(q =="test") nT.dS.value ="Hell yeah! Love it!" 

et à moins que je peux mélanger a[v] jusqu'à une lettre, il ne devient pas beaucoup plus efficace.

Profitez