मुझे यहां लोगों को थोड़ी सी समस्या मिली।
- एक उपयोगकर्ता को मुखपृष्ठ खुलता है और अन्य उपयोगकर्ताओं की सूची देखता है और क्लिक करता है उसके दोस्त की सूची पर एक जोड़ने के लिए: मैं इस परिदृश्य पर लागू करने के लिए कोशिश कर रहा हूँ।
- यदि उपयोगकर्ता लॉग इन है, तो मैं एक सर्वर संसाधन के लिए अजाक्स अनुरोध जारी करता हूं, यदि ऐसा है, तो मैं किसी अन्य सर्वर संसाधन को वास्तव में उपयोगकर्ता की मित्र सूची में जोड़ने के लिए अन्य AJAX अनुरोध जारी करता हूं।
सरल लगता है? यहां मैंने जो किया है: मैंने एक फ़ंक्शन isLoggedIn
बनाया है जो यह निर्धारित करने के लिए सर्वर पर पहला अनुरोध जारी करेगा कि उपयोगकर्ता लॉग इन है या नहीं। मैं jQuery.ajax
विधि का उपयोग करके यह अनुरोध जारी करता हूं। यहाँ मेरी समारोह लग रहा है जैसे:
function isLoggedIn() {
$.ajax({
async: "false",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/isloggedin",
success: function(jsonData) {
alert("jsonData =" + jsonData.LoggedIn);
return jsonData.LoggedIn;
}
});
}
लौटे JSON बहुत सरल है, तो वह ऐसा दिखता है:
{ LoggedIn: true } or { LoggedIn : false }
अब इस विधि, वास्तव में काम करता है और सही ढंग से चेतावनी प्रदर्शित करता है: JsonData = true
यदि प्रवेश किया था, । और JsonData = false
में लॉग इन नहीं तो इस बिंदु वहाँ कोई समस्या नहीं है तक, समस्या तब होती है जब मैं इस विधि कॉल करने का प्रयास करें:
$(".friend_set .img").click(function() {
debugger;
if (isLoggedIn()) {
alert("alredy logged in");
trackAsync();
popupNum = 6;
}
else {
alert("not logged in"); //always displays this message.
popupNum = 1;
}
//centering with css
centerPopup(popupNum);
//load popup
loadPopup(popupNum);
return false;
});
: मैं इसे इतना पसंद किया फोन
कॉलिंग isLoggedIn
हमेशा false
लौटाता है, और यह false before the ajax request finishes (because the message
jsonData = true is displayed after the message "not logged in". I made sure that the request is **NOT** Asynchronous by stating
async देता है: false`!
जाहिर है यह एसिंक्रोनस, हालांकि काम कर रहा है। मैं यहाँ लोगों को क्या याद कर रहा हूँ?
यह अगर आपके द्वारा निर्दिष्ट कोई फर्क करता है '{async:" झूठा "} 'बनाम' {async: false} '? –
@Cory लार्सन नहीं, यह कोई फर्क नहीं, बात यह है, विधि रिटर्न झूठी ajax अनुरोध भी पूर्ण होने से पहले करता है। – Galilyou