Неожиданный идентификатор javascript
Я пытаюсь сжать свой код JavaScript, чтобы получить меньше трафика на моем сайте. Он работает нормально, но теперь я столкнулся с ошибкой, которую не могу решить.
Я превратил свою функцию ajax в одну строку:
function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById("content").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();}
Но консоль chrome сообщает мне, что в этой строке есть неожиданный идентификатор. Firefox говорит, что в этой строке отсутствует точка с запятой.
Я пытался выяснить, что не так, но я не могу найти ошибку, может ли кто-нибудь помочь мне с этим?
Ответы
Ответ 1
Да, у вас слишком много }
. В любом случае, сжатие себя приводит к ошибкам.
function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("content").innerHTML = xmlhttp.responseText;
}
} // <-- end function?
xmlhttp.open("GET", "data/" + id + ".html", true);
xmlhttp.send();
}
Вместо этого используйте Closure Compiler.
Ответ 2
Я рекомендую использовать http://jsbeautifier.org/ - если вы вставляете фрагмент кода в него и нажимаете beautify, ошибка сразу же видна.
Ответ 3
Либо удалить один} из конца responseText;}}
, либо из конца строки
Ответ 4
В таких случаях вам лучше повторить добавление пробелов, что делает очевидную синтаксическую ошибку:
function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById("content").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();
}
Там} слишком много. Кроме того, после закрытия} функции вы должны добавить a; перед xmlhttp.open()
И, наконец, я не вижу, что там делает анонимная функция. Он никогда не выполнялся или не упоминался. Вы уверены, что вставили правильный код?
Ответ 5
Похоже, в коде есть лишняя фигурная скобка.
function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("content").innerHTML = xmlhttp.responseText;
}
// extra bracket }
xmlhttp.open("GET", "data/" + id + ".html", true);
xmlhttp.send();
}