2013-03-13 92 views
0

我有一个花哨的问题。一些JavaScript检查,如果可以写一个Cookie。
这是我们的代码:JavaScript之后写入Cookie似乎需要睡眠

function logCookieError(){ 
    var noCokkieSet = false; 
    createCookie('testcookie','testvalue',1); 
    if(getCookie('testcookie') != 'testvalue'){ 
    noCokkieSet = true; 
    _log.error("XMPP=NO COOKIES:"); 
    }else{ 
    eraseCookie('testcookie'); 
    } 
    return noCokkieSet; 
} 

不幸的是,有时(使用Chrome测试),我们收到一个假的,但一切都没有改变。
那么,编写Cookie是否需要一些时间,我需要添加睡眠,还是可能会影响此测试?

问候,
-Rainer

编辑
我想,createCookie的和getCookie方法是标准的JavaScript方法。这里的实现:

function createCookie(name,value,days){ 
    if (days){ 
    var date = new Date(); 
    date.setTime(date.getTime()+(days*24*60*60*1000)); 
    var expires = "; expires="+date.toGMTString(); 
    }else{ 
    expires = ""; 
    } 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function getCookie(NameOfCookie){ 
    if (document.cookie.length > 0){ 
    begin = document.cookie.indexOf(NameOfCookie+"="); 
     >-if (begin != -1){ 
     begin += NameOfCookie.length+1; 
     end = document.cookie.indexOf(";", begin); 
     if (end == -1) end = document.cookie.length; 
     return unescape(document.cookie.substring(begin, end)); 
    } 
    } 
    return null; 
} 
+1

您需要添加什么'createCookie','getCookie'和'eraseCookie'做,或添加到您正在使用的库的引用。 – phenomnomnominal 2013-03-13 07:53:40

+0

写入cookie是一种同步且速度极快的操作。我怀疑'getCookie','createCookie'和'eraseCookie'方法无法正常工作。 – freakish 2013-03-13 07:55:42

回答

0

检查你的createCookie函数。 可能您正试图创建一个自动终止的超时cookie。 一个很好的例子驻留在: Quirksmode org