| Auteur | Pages : [>] |
|---|---|
| Changaco | # 29 Jul 2007 - 20:13:07 |
| 782 Posts |
Bonjour. J'ai fait une recherche sur le sujet des fonctions utiles et j'ai remarqué qu'il n'y a rien sur les cookies et comme je n'ai trouvé dans aucun sujet des fonctions pour gérer les cookies je me demandais si quelqu'un en a à nous proposer pour que l'on puisse mettre les meilleurs dans le topic des fonctions utiles. Personnellement j'utilise celles que j'ai trouvé sur quirksmode : fonctions pour manipuler les cookies en javascript. Assimiler ... Analyser ... Arguer |
| QuentinC | # 29 Jul 2007 - 21:38:38 |
Étudiant qui bosse ... ou pas 4241 Posts |
Personnellement, j'ai celle-ci :
[/i][/i] java.lang.BrainNotFoundException : Neuron connection failure |
| Changaco | # 30 Jul 2007 - 08:49:35 |
| 782 Posts |
Intéressant car ta méthode permet de parcourir les cookies une seule fois contrairement à la fonction de quirksmode. Merci. D'autres ? Modifié par CNeo (30 Jul 2007 - 08:55) Assimiler ... Analyser ... Arguer |
| Gatsu35 | # 30 Jul 2007 - 08:55:42 |
| 206 Posts |
http://www.quirksmode.org/js/cookies.html et tu y trouveras 3 fonctions bien utiles sur les cookies |
| Changaco | # 30 Jul 2007 - 08:56:54 |
| 782 Posts |
Gatsu35 a écrit :C'est celles que j'ai mis en lien dans mon premier message ... Assimiler ... Analyser ... Arguer |
| Changaco | # 30 Jul 2007 - 09:39:21 |
| 782 Posts |
Édit de la fonction de QuentinC à cause du BBCode./* Assimiler ... Analyser ... Arguer |
| Changaco | # 30 Jul 2007 - 10:40:58 |
| 782 Posts |
De nouveau une correction pour que "cookies.length" ne soit pas égal à "1" quand il n'y a rien.function getCookies(){Note : j'ai changé les noms pour moi mais j'ai la flemme de tout remettre comme avant. Modifié par CNeo (30 Jul 2007 - 10:41) Assimiler ... Analyser ... Arguer |
| Julien Royer | # 30 Jul 2007 - 10:56:03 |
Coin coin Modérateur 3708 Posts |
Hello, Personnellement j'utilise ceci : var cookieMgr = { |
| Julien Royer | # 30 Jul 2007 - 14:20:23 |
Coin coin Modérateur 3708 Posts |
QuentinC a écrit : Problème potentiel pour certaines valeurs (que l'on n'utilisera sans doute pas pour les noms de cookies) : alert(getCookies().get("constructor")); Modifié par Julien Royer (30 Jul 2007 - 14:21) |
| QuentinC | # 30 Jul 2007 - 16:39:12 |
Étudiant qui bosse ... ou pas 4241 Posts |
Certes.... j'ai pas pensé à ça mais c'est en effet peu probable Merci pour la correction du bug si tableau vide, je n'y ai pas pensé non plus. Sinon, j'ai ça aussi en stock : eval(document.cookie.split(";").join("; ").replace(/=([^=;]*)/g, "=\"$1\"").replace(/=\"([0-9]+(\\.[0-9]+)?)\"/g, "=$1")); Pas mal pour impressionner... ça crée des variables globales. java.lang.BrainNotFoundException : Neuron connection failure |
| Changaco | # 30 Jul 2007 - 21:21:59 |
| 782 Posts |
J'ai voulu faire un mixte entre la solution de QuentinC qui permet de ne pas parcourir tous les cookies à chaque fois que l'on chercher une valeur et celle de Julien avec un élégant objet. Le problème c'est que ça ne marche pas. J'ai des données que je rentre dans un tableau et qui disparaissent, seule la première reste. Étant donné que j'y ai passé une bonne partie de l'après-midi je suppose que ça doit être un comportement que je ne connais pas dû au fait d'utiliser un objet.var cookies = {Quand je teste dans la fonction initiate les valeurs alors elles sont là mais quand je teste n'importe où ailleurs que se soit à l'intérieur ou à l'extérieur de l'objet seule la première valeur rentrée est accessible. Quelqu'un aurait-il une idée ? Modifié par CNeo (31 Jul 2007 - 09:22) Assimiler ... Analyser ... Arguer |
| QuentinC | # 31 Jul 2007 - 04:34:15 |
Étudiant qui bosse ... ou pas 4241 Posts |
Et si tu utilisais this ?
java.lang.BrainNotFoundException : Neuron connection failure |
| Changaco | # 31 Jul 2007 - 09:22:20 |
| 782 Posts |
Ça ne change rien. Attendez j'ai trouvé je vais expliquer. Modifié par CNeo (31 Jul 2007 - 09:32) Assimiler ... Analyser ... Arguer |
| Changaco | # 31 Jul 2007 - 09:44:36 |
| 782 Posts |
En fait c'était tout con : "document.cookie" revoie une chaîne qui pour séparer chaque valeur utilise les deux caractères "; " et pas seulement ";". Voilà donc le code : var cookies = {Maintenant il faudrait savoir laquelle on va mettre dans les fonctions utiles ? Modifié par CNeo (31 Jul 2007 - 09:46) Assimiler ... Analyser ... Arguer |
| QuentinC | # 31 Jul 2007 - 10:44:06 |
Étudiant qui bosse ... ou pas 4241 Posts |
Pour que ce soit un peu plus portable, je remplacerais cette ligne : var bar = document.cookie.split("; "); par : var bar = document.cookie.split(/\s*;\s*/g); Parce qu'apparament l'espace suppplémentaire n'est pas présent partout ni avec tous les navigateurs. En tout cas je n'ai jamais eu de problème avec ça. java.lang.BrainNotFoundException : Neuron connection failure |
| Julien Royer | # 31 Jul 2007 - 10:46:06 |
Coin coin Modérateur 3708 Posts |
Voici ma proposition :var cookieMgr = {Petites précisions : - A mon avis, l'utilisation de escape et unescape est importante. - Je ne suis pas très favorable à la mise en cache de tous les cookies, étant donné que l'utilisateur peut les modifier ailleurs dans son code sans passer par nos fonctions. <edit>Suppression de getAll qui ne fonctionnait pas sous IE. Modifié par Julien Royer (31 Jul 2007 - 15:27) |
| Changaco | # 31 Jul 2007 - 11:15:46 |
| 782 Posts |
Pourquoi l'utilisateur irait modifier des cookies ? Franchement la mise en cache fait à mon avis gagné du temps d'exécution. De plus tu utilises deux fois des regexp ceux qui ralenti encore le script ( à moins qu'en Javascript ce ne soit pas pareil qu'en PHP ? ). Ensuite il suffit de réfléchir un peu pour se rende compte que normalement il n'y a rien de super important dans des cookies ( le pourquoi de ce sujet vient d'une utilisation sur des menus pour savoir s'ils sont masqués ou non ) donc si la valeur est modifié par l'utilisateur c'est son problème ... Édit : pour le "escape" ça peut peut-être servir je le rajoute dans la mienne. Modifié par CNeo (31 Jul 2007 - 11:18) Assimiler ... Analyser ... Arguer |
| Julien Royer | # 31 Jul 2007 - 11:24:50 |
Coin coin Modérateur 3708 Posts |
CNeo a écrit : Il se peut que plusieurs scripts s'exécutent en même temps sur ta page, dont certains que tu ne maîtrises pas... CNeo a écrit : Le fait que les regexp soient plus lentes que l'utilisation de split reste à prouver. CNeo a écrit : Peut-être, mais le pourquoi a peu d'importance, il me semble que le but du sujet est bien de proposer des fonctions utilisables ailleurs. Franchement, je ne suis pas convaincu que le temps d'exécution gagné vaille vraiment la peine de se compliquer la vie avec une mise en cache. Si l'utilisateur des fonctions souhaite gagner du temps, il peut très bien mettre lui-même en cache l'objet que lui a retourné la fonction. |
| Changaco | # 31 Jul 2007 - 11:34:48 |
| 782 Posts |
Julien Royer a écrit :Ce n'est pas le cas dans mon projet actuel. Julien Royer a écrit :En PHP il me semble que les regexp sont plutôt lentes mais j'avoue que pour le Javascript je ne sais pas. Julien Royer a écrit :Oui c'est bien le but. Julien Royer a écrit :Tu sais ce qu'on dit : "1ms+1ms+1ms..." et aussi le fameux "il n'y a pas de petits gestes quand on est 60 millions à les faire" qui s'applique bien en informatique aussi. Je pense que nos deux objets répondent à deux demandes différentes donc soit on met les deux soit on ne met que la tienne c'est à toi de décider en sachant que de toute façon il restera ce sujet comme trace et qu'il peut-être mis en lien. Assimiler ... Analyser ... Arguer |
| Julien Royer | # 31 Jul 2007 - 11:53:07 |
Coin coin Modérateur 3708 Posts |
CNeo a écrit : Moi non plus, c'est à tester. CNeo a écrit : Je sais surtout que : Donald Knuth a écrit : (voir sur Wikipédia) et je pense que c'est bien plus important pour être un bon programmeur. CNeo a écrit : Je suis bien d'accord. Par contre, pourquoi n'émets-tu pas l'hypothèse de ne mettre que le tien ? Pour ma part, je pense que l'on peut mettre les deux. |
Pages : [>] |
|
Les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org
Nos partenaires : Editions Eyrolles
Nikozen : Hébergement - Réalisation : Alsacreations.fr







) return t
Étant donné que j'y ai passé une bonne partie de l'après-midi je suppose que ça doit être un comportement que je ne connais pas dû au fait d'utiliser un objet.
