नोट: यह सेटटाइम के बारे में उन लोगों के लिए एक प्रतिकृति पोस्ट नहीं है, यहां मुख्य उत्तर ब्राउज़र डिज़ाइन विकल्प है।क्यों सेटटाइमआउट ब्लॉक इवेंटलोप
मैं शुरू कर रहा हूँ अध्ययन Node.js: परीक्षण करने के लिए एक सरल उदाहरण async:
var http=require('http');
http.createServer(
function(request, response){
response.writeHead(200);
response.write("Hello, dog is running");
setTimeout(
function(){
response.write("Dog is done");
response.end();
},
10000
);
}
).listen(8080);
console.log("Listen on port 8080")
एक दिलचस्प बात यह है कि अपने व्यवहार को कर्ल के साथ जब आदेश Lind में differernt है और ब्राउज़र में है: उबंटू 12.10 में, मैं कर्ल लोकलहोस्ट का उपयोग करता हूं: 8080 दो कंसोल में, वे लगभग 10 भेजते हैं।
हालांकि, मैं दो ब्राउज़रों को खोलता हूं, अनुरोध लगभग एक ही समय में करता हूं, लेकिन पूरी प्रक्रिया ने मुझे 20 सेकंड का समय दिया?
धन्यवाद।
संभावित डुप्लिकेट [नोडजेस एक अनुरोध अन्य अनुरोधों को अवरुद्ध करता है] (http://stackoverflow.com/questions/12197064/nodejs-one-request-blocks-another-requests) –
@ मैटबॉल, मुझे नहीं लगता कि यह एक है नकल। यह सीपीयू गहन प्रसंस्करण नहीं करता है। साथ ही, यह मेरे लिए सीएलआई (कर्ल) का उपयोग करके सही ढंग से काम करता है, लेकिन फ़ायरफ़ॉक्स में नहीं। – Dogbert
ऐसा लगता है कि ब्राउजर दूसरे अनुरोध को पहले एक सिरे तक नहीं भेज रहा है। यदि आप हैंडलर की शुरुआत में लॉग स्टेटमेंट जोड़ते हैं, तो यह इसका प्रदर्शन करेगा। – Dogbert