2012-11-13 5 views
2

Existe-t-il un moyen plus efficace de rechercher dans window.location.href?Méthode plus efficace de recherche window.location.href pour une chaîne?

window.location.href: http://www.example.com/6CATA/folder/file.html

Le code actuel que j'ai est:

var searchWinHref = window.location.href; 
if(searchWinHref.indexOf("/6CATA/") > -1) { 
    alert('6CATA is in the window.location.href'); 
} 

Ce qui fonctionne très bien, mais je suis en train d'apprendre des façons d'optimiser le code, si possible, et si je besoin de le faire à quelques reprises sur une page, je suis curieux de savoir s'il existe une façon plus efficace de le faire?

EDIT:

Pour clarifier les choses, je dois chercher de temps en temps l'URL des variations différentes, par exemple: 6CATA & 6CATB etc.

+0

l'optimisation prématurée est la racine de tout mal ... encore: location.pathname pourrait être .00000001 ms plus rapide –

+0

C'est probablement la meilleure façon de le faire, même si vous ne devriez pas avoir à le faire plusieurs fois. –

+1

Si vous devez le faire plus d'une fois puis stocker le résultat dans une variable et vérifier que ... var index = searchWinHref.indexOf ("/ 6CATA /"); ' – Archer

Répondre

1

Vous pouvez utiliser window.location.pathname, mais vous ne vont pas obtenir une augmentation de la vitesse de ce petit morceau de code.

1

En termes de performances, cela semble bien, surtout si vous ne l'appelez que quelques fois.

Etes-vous sûr de devoir faire cette vérification côté client, cependant? Cela pourrait être quelque chose de mieux adapté à faire sur le serveur. Mais c'est à vous ...

+0

nous avons seulement accès au côté client - c'est un système CMS fermé malheureusement! – JayDee

+0

Ah ... bien dans ce cas, voilà :) –

2

Non, c'est tout à fait bien. Vous pouvez utiliser location.pathname.split('/').contains("6CDATA"), mais cela est tout à fait équivalent. Si vous voulez optimiser votre code et vous soucier vraiment d'une telle micro-optimisation, cachez le résultat dans une variable si vous en avez besoin plusieurs fois.

+0

[Contient] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/contains) est Fx17 + seulement – mplungjan

+0

@mplungjan: Je m'attendais à un prototype.js-like ' contient 'sur les tableaux, mais oui - juste déteste l'écriture'! = - 1' :-) – Bergi

+0

> -1 ou> = 0 est plus à votre goût? ;) – mplungjan

Questions connexes