javascript onverwachte identifier

Ik probeer mijn JavaScript-code te comprimeren om minder verkeer op mijn site te krijgen. Het werkte prima, maar nu kwam ik een fout tegen die ik niet kan oplossen.

Ik heb mijn ajax-functie in één regel veranderd:

function(){if(xmlhttp.readyState==4&&xmlhttp.status==200){document.getElementById("content").innerHTML=xmlhttp.responseText;}}xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();}

Maar de Chrome-console vertelt me dat er een onverwachte id op deze regel staat. Firefox zegt dat er een puntkomma ontbreekt op deze regel.

Ik heb geprobeerd te achterhalen wat er mis is, maar ik kan de fout niet vinden, kan iemand me hiermee helpen?


Antwoord 1, autoriteit 100%

Ja, je hebt een }te veel. Hoe dan ook, jezelf comprimeren leidt meestal tot fouten.

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();
}

Gebruik in plaats daarvan Closure Compiler.


Antwoord 2, autoriteit 30%

Ik raad aan om http://jsbeautifier.org/te gebruiken – als je je codefragment erin plakt en op verfraaien drukt , de fout is direct zichtbaar.


Antwoord 3, autoriteit 8%

In dergelijke gevallen is het beter om de witruimte opnieuw toe te voegen, waardoor de syntaxisfout meteen duidelijk wordt:

function(){
  if(xmlhttp.readyState==4&&xmlhttp.status==200){
    document.getElementById("content").innerHTML=xmlhttp.responseText;
  }
}
xmlhttp.open("GET","data/"+id+".html",true);xmlhttp.send();
}

Er is een} te veel. Ook, na de sluiting} van de functie, moet u een A; vóór de XMLHTTP.OPEN ()

En tot slot, ik zie niet wat die anonieme functie daarboven is. Het is nooit uitgevoerd of waarnaar wordt verwezen. Weet je zeker dat je de juiste code hebt geplakt?


4, Autoriteit 3%

Het lijkt erop dat er een extra krullende beugel in de code is.

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();
}

5

Als u JS wilt comprimeren, raadt u u aan om sluiting compiler , een tool te gebruiken verstrekt door Google voor website-ontwikkelaars. Het biedt ook extra API’s die zelf kunnen worden geïmplementeerd

Other episodes