JavaScript cookie读取中的输出是静态的,有助于调试

时间:2015-09-08 00:58:59

标签: javascript html debugging cookies

在我开始之前,我是JavaScript的新手,并且在没有被教授的情况下给我们一个艰难的任务。 所以这就是我的问题:我修改了W3C.org中的代码,用于创建cookie,阅读和检查以包含“访问”和#39;部分(对于点击计数器)并使其每次加载页面时(从服务器而不是在离线模式下)访问号码将增加1。 但是在下面的程序中,输出总是"访问次数:1":



function setCookie(cname, cvalue, exdays, visits) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
	var visit = (visits + 1);
    document.cookie = cname + "=" + cvalue + "; " + expires + "; visits=" + visit;
}

function getCookie(cname) {
    var name = cname + "=";
    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);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

function checkCookie() {
    var user = getCookie("username");
	var visitCount = getVisits();
    if (user != "") {
        alert("Cookie: " + user + "\n" + "Visits: " + visitCount);
		setCookie("username", user, 365, visitCount);
    } else {
        user = "TheName"; alert("Cookie: " + user + "\n" + "Visits: " + visitCount); setCookie("username", user, 365, visitCount);
    }
}
//this is the place where the problem occurs, but not sure.
function getVisits() {
	var visit = getCookie("visits");
	var visitNumber = visit.substring(7);
	if (visitNumber == 1) {
		return visitNumber;
	}
	else {
	visitNumber += 1; return visitNumber;
	}
}
&#13;
&#13;
&#13;

在这个程序中,输出总是&#34;访问次数:null&#34;喜欢没有输出数字:

&#13;
&#13;
function setCookie(cname, cvalue, exdays, visits) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
	var visit = (visits + 1);
    document.cookie = cname + "=" + cvalue + "; " + expires + "; visits=" + visit;
}

function getCookie(cname) {
    var name = cname + "=";
    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);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

function checkCookie() {
    var user = getCookie("username");
	var visitCount = getVisits();
    if (user != "") {
        alert("Cookie: " + user + "\n" + "Visits: " + visitCount);
		setCookie("username", user, 365, visitCount);
    } else {
        user = "TheName"; alert("Cookie: " + user + "\n" + "Visits: " + visitCount); setCookie("username", user, 365, visitCount);
    }
}

function getVisits() {
	var visit = getCookie("visits");
	var visitNumber = visit.substring(7);\
// this is the change in the program from the first code
		if (visitNumber >= 1) {
		visitNumber += 1; return visitNumber;
	}
	else {
	return visitNumber;
	}
  }
&#13;
&#13;
&#13; 除了总体而言,我能够通过该程序输出名称和命中数。

非常感谢你:)

0 个答案:

没有答案