Quiero incrementar el valor de una cookie cada vez que se hace referencia a una página, incluso si la página se carga desde la memoria caché. ¿Cuál es la "mejor" o la forma más concisa para implementar esto?¿Cuál es la "mejor" forma de obtener y establecer un único valor de cookie mediante JavaScript?
Respuesta
Robados de http://www.quirksmode.org/js/cookies.html#script
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toUTCString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
usarlo:
var oldCount = parseInt(readCookie('hitCount'), 10) || 0;
createCookie('hitCount', oldCount + 1, 7);
como se señala en los comentarios, debe convertir a int ya que las cookies son almacenado y devuelto como cadenas. Usando foo++
o ++foo
realidad echará para usted, pero es más seguro para saber exactamente lo que está trabajando:
var x = "5"; // x = "5" (string)
x += 1; // x = "51" (string!)
x += 5; // x = "515" (string!)
++x; // x = 516 (number)
La mayor parte de las funciones de manejo de galletas que he visto usar manipulaciones de cadenas sencillas para almacenar unos valores de recuperación, como this ejemplo, puede utilizar otras bibliotecas, como cookie-js, un pequeño (100 líneas) < utilidad para galletas acceso.
Yo personalmente uso de jQuery en mis proyectos, y utilizo el jQuery Cookie Plugin, es muy fácil de usar:
var cookieName = "increment";
if ($.cookie(cookieName) == null){
$.cookie(cookieName, 1, { expires: 10 });
}else{
var newValue = Number($.cookie(cookieName)) + 1;
$.cookie(cookieName, newValue, { expires: 10 });
}
la mejor manera es siempre la más sencilla:
function getCookie(name) {
return (name = (document.cookie + ';').match(new RegExp(name + '=.*;'))) && name[0].split(/=|;/)[1];
}
// the default lifetime is 365 days
function setCookie(name, value, days) {
var e = new Date;
e.setDate(e.getDate() + (days || 365));
document.cookie = name + "=" + value + ';expires=' + e.toUTCString() + ';path=/;domain=.' + document.domain;
}
estas funciones esperan que el valor para ser una cadena simple, pero siempre puede JSON.stringify si lo desea o tal vez hacer algo más con él ...
- 1. ¿Cuál es la mejor manera de obtener una cookie por nombre en JavaScript?
- 2. ¿Cuál es la mejor manera de extraer un valor único de un conjunto de groovy?
- 3. Cómo establecer u obtener un valor de cookie en Django
- 4. ¿Es posible establecer más de una cookie con un único Set-Cookie?
- 5. Establecer valor de entrada mediante la función de Javascript
- 6. ¿Cuál es la mejor forma de obtener Contexto?
- 7. Forma segura de codificar un valor de cookie en C#
- 8. C# ICollection obtener valor único
- 9. ¿Cuál es la mejor forma de distribuir Lua y bibliotecas?
- 10. ¿Cuál es la mejor práctica para manejar tuplas de valor único en Python?
- 11. ¿Cuál es la mejor forma de obtener la parte fraccionaria de una flotación en PHP?
- 12. ¿Cuál es la mejor forma de obtener el nombre de etiqueta de un elemento en JS?
- 13. ¿Cuál es la mejor forma de organizar una solución ASP.Net MVC mediante inyección de dependencia?
- 14. ¿Mejor forma de obtener tiempo en milisegundos en javascript?
- 15. Rails Single Table Herencia: ¿Cuál es la mejor forma de establecer explícitamente el tipo?
- 16. ¿Cuál es la mejor forma de formatear C# en WordPress?
- 17. ¿Cuál es la forma más concisa de obtener el inverso de un valor booleano de Java?
- 18. ¿Cuál es la forma más rápida de obtener el valor absoluto de un número
- 19. ¿Cuál es la forma más rápida de generar un conjunto único en .net 2
- 20. ¿Cuál es la mejor forma de generar rangos en MYSQL?
- 21. cookie jquery establecer valor en booleano true
- 22. ¿Cuál es el mejor ocultador de JavaScript?
- 23. ¿Cuál es la mejor forma de normalización de Unicode?
- 24. ¿Cuál es la mejor forma de ordenar una tabla hash por valor?
- 25. ¿Cuál es la mejor forma de obtener la ruta del ejecutable durante el tiempo de ejecución?
- 26. ¿Cuál es la mejor forma de obtener la última identificación insertada usando sqlite de Java?
- 27. ¿Cuál es la mejor forma de obtener una duración de archivo de audio en Android?
- 28. ¿Cuál es la mejor manera de crear un objeto JavaScript para que funcione Y pase JSLint?
- 29. ¿Cuál es la mejor forma de usar NLog con MEF?
- 30. ¿Cuál es la mejor forma de distribuir aplicaciones Java?
readCookie devuelve una subcadena, debe convertirla como un número al aumentar 1, de lo contrario tendrá , 1, 11, 111, 1111 ... – CMS
Falta un escape y unescape para el valor – hultqvist
Tenga en cuenta que toGMTString ha quedado en desuso en favor de toUTCString – BeauCielBleu