2011-06-22 11 views
12

मैं अपनी साइट पर कम ट्रैफ़िक प्राप्त करने के लिए अपने जावास्क्रिप्ट कोड को संपीड़ित करने का प्रयास कर रहा हूं। यह ठीक काम कर रहा है, लेकिन अब मैं एक त्रुटि में आया हूं जिसे मैं हल नहीं कर सकता।जावास्क्रिप्ट अप्रत्याशित पहचानकर्ता

मैं एक लाइन में मेरी ajax समारोह बदल गया:

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

लेकिन क्रोम कंसोल मुझसे कहता है इस लाइन पर एक अप्रत्याशित पहचानकर्ता है। फ़ायरफ़ॉक्स का कहना है कि इस लाइन पर एक अर्धविराम गायब है।

मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या गलत है, लेकिन मुझे त्रुटि नहीं मिल रही है, क्या कोई मेरी मदद कर सकता है?

+3

असंपीड़ित करने में सहायता करता है: http://jsbeautifier.org/ – JohnP

उत्तर

30

हां, आपके पास } बहुत अधिक है। वैसे भी, खुद को संपीड़ित करने से त्रुटियों में परिणाम होता है।

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 का उपयोग करें।

+4

ऑब्जेक्ट में कॉमा गायब होने के लिए भी यही त्रुटि प्राप्त करना आम है। –

+0

और ऑब्जेक्ट गुणों के बाद वे गायब हो जाते हैं, खासकर जब आप ऑब्जेक्ट के अंदर चर/फ़ंक्शन जोड़ते/स्थानांतरित करते हैं। – totymedli

3

या तो हटा दें एक} responseText;}} के अंत से या लाइन

8

मैं http://jsbeautifier.org/ का उपयोग करना चाहिये के अंत से - यदि आप इसे में अपने कोड स्निपेट पेस्ट और प्रेस सुशोभित, त्रुटि तुरंत दिख रहा है।

2

ऐसा लगता है कि कोड में एक अतिरिक्त घुंघराले ब्रैकेट है।

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

ऐसे मामलों में, आप से बेहतर कर रहे हैं फिर से जोड़ने खाली स्थान के जो तत्काल सिंटेक्स त्रुटि स्पष्ट करता है:

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

वहाँ एक है} भी कई। फ़ंक्शन के समापन के बाद भी, आपको एक जोड़ना चाहिए; xmlhttp.open()

और अंततः, मुझे नहीं पता कि वह अनाम कार्य वहां क्या करता है। इसे कभी निष्पादित या संदर्भित नहीं किया जाता है। क्या आप वाकई सही कोड चिपका चुके हैं?

संबंधित मुद्दे