 |
|
|  |
°ñ¶§¸®´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¼¼°è - ³ª¸¸ÀÇ ÇÁ·Î¹ÌÁî ÆÐÅÏ |
|
|
 |
10³â Àü |
jQuery 1.5 ¿¡¼ ȹ±âÀûÀÌÁö¸¸ Àß ¾È¾²´Â °Ô ÀÖÁÒ. ¹Ù·Î Áö¿¬µÈ °´Ã¼(Deferred Object) ÀÔ´Ï´Ù. ÀÌ °´Ã¼ÀÇ À§·ÂÀ» Á¤¸» ´À²¸º»»ç¶÷ »©°í´Â Àß ¾È¾²ÁÒ.
À̳ðÀÇ ÆÐÅÏÀÌ ¾î¶»³Ä..
$.get('/serv/get.php',null,function(){
alert('¹» ¹Þ¾Æ¿Âµí.');
});
ÀÌ ±âÁ¸ ÆÐÅÏ°ú
$.get('/serv/get.php')
.success(function(){
alert('¹» ¹Þ¾Æ¿Âµí.');
});
ÀÌ Á¦ÀÌÄõ¸®¿¡¼ Á¦¾ÈÇÑ ÆÐÅÏ°ú ¶È°°Àº È¿°ú¸¦ ÁÝ´Ï´Ù.
¹¹.. ´À³¦»ó ÆÐÅÏÀº ´ç¿¬È÷ Ʋ¸®ÁÒ.
ºÐ¸í Ajax´Â ºñµ¿±â ½ºÅ©¸³Æ®ÀÔ´Ï´Ù. ÇÏÁö¸¸ µ¿±âÇÑ °Í ó·³ ¹º°¡ Âø°¢À» ºÒ·¯ÀÏÀ¸Å°±âµµ ÇÏ°í. ¹Ù·Î ºñµ¿±â ½ºÅ©¸³Æ®¸¦ ÀÌ·¸°Ô ´«¿¡ º¸±â ÁÁ°Ô ²Ù¸ç ³õ´Â´Ù´Â ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù.
node.js °³¹ßÇÏ´Ùº¸¸é À̺¥Æ® ÁßÁ¡ÀûÀÌ´Ù º¸´Ï Á¾Á¾ ºñµ¿±â ¾µ¶§ ÀÌ·± ÆÐÅÏÀÌ ¹ß»ýÇÕ´Ï´Ù.
var mongodb = require('mongodb'),
Db = mongodb.Db;
var db = new Db('test_db', new Server(process.env["MONGODB_HOST"], process.env["MONGODB_PORT"], {}));
db.open(function(err, db) {
db.collection("test_collection", function(err, collection) {
collection.find({"cmd":cmd}, {"sort":"order"}, function(err, cursor) {
cursor.each(function(err, item) {
if (item != null) {
// Do something
}
if (item != null) {} // ¹Ýº¹¹® ³¡
});
db.close();
});
});
});
¿À¿ì 쉣. ÇÔ¼ö¾È¿¡ ÇÔ¼ö¾È¿¡.. ³Ê¹« ÁöÀúºÐÇÕ´Ï´Ù. ÇÏÁö¸¸ Á¦ÀÌÄõ¸®°¡ Á¦¾ÈÇÑ Áö¿¬µÈ °´Ã¼ ÆÐÅÏÀ¸·Î °£´Ù¸é Àú°É?
db.open()
.collection('test_collection')
.find({"cmd":cmd}, {"sort":"order"})
.fetch(function(err,cursor){
cursor.each(function(err, item) {
if (item != null) {
// Do something
}
if (item != null) {} // ¹Ýº¹¹® ³¡
});
})
.close();
ÀÌ·± ½ÄÀ¸·Î ºñµ¿±â ½ºÅ©¸³Æÿ¡ Á¦ÀÌÄõ¸®ÀÇ ÃÖ°¹«±â ¸Þ¼µå üÀÌ´×À» ±¸»çÇÒ ¼ö ÀÖ´Ù´Â °Ì´Ï´Ù. ¹°·Ð Àú·± ÆÐÅÏ Á¦°øÇÏ´Â ³ðÀº ¾ÆÁ÷±îÁö ¾øÀ¸´Ï ±×´ë·Î µû¶óÇÏÁö ¸¶½Ã±æ. ±×³É ¿¹¸¦ µç°Å´Ï±î¿ä.
±×·³ ¾î¶² ¿ø¸®·Î Çϴ°ÇÁö ¿À´Ã °ñ¶§¸®°Ô ¼³¸íÇØ µå¸®µµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÏ´Ü ¸ÕÀú, µ¿Àû Ŭ·¡½ºÀÇ °³³ä°ú Ŭ·ÎÀú °³³äÀ» ÀÌÇØÇÏ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. Àú´Â ±× ÀÌÇظ¦ ÇÏ°í ÀÖ´Â ºÐÀ¸·Î °£ÁÖÇÏ°í ÆÁÀ» ¾¹´Ï´Ù. ¸ð¸£¸é ¹®ÇÐÀÌ´ÔÀÌ ¶±ÇÏ´Ï °Á ¿Ã·Á³ùÀ¸´Ï º¸½Ã±æ.
..¶ó°í ¹«¼·°Ô ¾ê±âÇߴµ¥. ¾î·ÆÁö ¾Ê½À´Ï´Ù. ¸ÕÀú µ¿Àû Ŭ·¡½º¸¦ ¸¸µé ÇÔ¼ö¸¦ Çϳª Â¥ÁÖ¼¼¿ä.
fuynction MyDefferd(){
this.fn={};
//ÃʱâÈ ÇÒ°Å ÀÖÀ½ Çϵ¢°¡.
}
±×¸®°í Áö¿¬µÈ °´Ã¼¿¡¼ üÀ̴׿¡ »ç¿ëÇÒ ÇÁ·ÎÅäŸÀÔ ÇÔ¼ö Çϳª ¸¸µé°Ú½À´Ï´Ù.
MyDefferd.prototype.done=function(func){
this.fn.done=func;
};
¹¹.. Áغñ ³¡ÀÔ´Ï´Ù. ±×¸®°í ÀÌÁ¦ Áö¿¬µÈ °´Ã¼¸¦ ¸®ÅÏÇÒ ÇÔ¼ö¸¦ Çϳª ¸¸µé°Ú½À´Ï´Ù. ±×¸®°í ÀÌ ÇÔ¼ö´Â ºñµ¿±â ÀÛ¾÷À» ÇÒ °Ì´Ï´Ù. °£´ÜÇÏ°Ô setTimeout À» ¾²°Ú½À´Ï´Ù.
function Deffer(delay){
var deff=new MyDefferd();//¾Æ±î ¸¸µç Áö¿¬°´Ã¼¸¦ µ¿ÀûÀ¸·Î Çϳª ºÒ·¯¿Í Áֽðí.
alert('ÀÛ¾÷ ½ÃÀÛ!');
setTimeout(function(){
if(typeof(deff.fn.done)=='function')
deff.fn.done();//done ÇÔ¼ö¸¦ ²ø¾î´Ù ¾¹´Ï´Ù.
},delay*1000);//¸îÃÊ ÈÄ¿¡? ´ÔÀÌ ¾´ ÃÊ ÈÄ¿¡.
return deff;//¹Ýµå½Ã µ¿Àû Áö¿¬ °´Ã¼¸¦ ¹ÝȯÇØÁà¾ß ÇÕ´Ï´Ù!
}
ÀÌ°ÍÀ¸·Î Áö¿¬°´Ã¼ ÆÐÅÏÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÔ¼ö¸¦ ¾µ Áغñ°¡ ³¡³µ½À´Ï´Ù. Âü ½±ÁÒ? ¾î¶»°Ô ¾²³Ä? °£´ÜÇÕ´Ï´Ù. ¿¹¸¦ µé¾î 3ÃÊ ÈÄ¿¡ ÀÛ¾÷ ³¡ ¸Þ½ÃÁö°¡ ³ª¿Àµµ·Ï ²Ù¸çº¸°Ú½À´Ï´Ù.
Deffer(3).done(function(){
alert('ÀÛ¾÷ ³¡!');
});
±×·³ óÀ½¿¡ ÀÛ¾÷ ½ÃÀÛÀ̶õ °æ°íâÀÌ ¶á ´ÙÀ½, 3ÃÊ ÈÄ¿¡ ÀÛ¾÷ ³¡À̶õ °æ°íâÀÌ ¶ã°Ì´Ï´Ù. ±×·¸°Ô ³ª¿À¸é ¼º°ø! ¾î¶§¿ä. Âü ½±ÁÒ?
µ¿Àû Ŭ·¡½º´Â ÇÔ¼ö Á¾·á ÈÄ Å¬·ÎÀú ¶§¹®¿¡ ¸Þ¸ð¸® ´Ù½Ã ¹Ý³³ÇØ ÇÏ´Â°É °³³ª Áà¹ö¶ó´Â´Â ¼ºÁú ´öºÐ¿¡ deff ÇÔ¼ö¿¡¼ ¾ðÁ¦µçÁö Àú·¸°Ô µ¿Àû Ŭ·¡½º ¾È¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ ÀÒÁö ¾Ê°í °®´Ù ¾µ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°É ÀÌ¿ëÇؼ Áö¿¬µÈ °´Ã¼¸¦ ÅëÇØ ºñµ¿±â ½ºÅ©¸³Æ® ÆÐÅÏÀ» µ¿±â ½ºÅ©¸³Æ® ÆÐÅÏ°°ÀÌ ²Ù¹Ð ¼ö°¡ ÀÖ´Â °ÍÀÌÁÒ. ÀÌ·± Áö¿¬ °´Ã¼¸¦ ÀÀ¿ëÇؼ Ajax´Â ¹°·Ð, node.js ¿¡¼ ÇÒ ¼ö ÀÖ´Â ´ëºÎºÐÀÇ ºñµ¿±â ÀÛ¾÷¿¡¼ ¿©·¯ºÐÀÇ ´«À» Á¤È½ÃÅ°´Â ÆÐÅÏÀ» ¸¸µé ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
|
|
̵̧ : 497 |
̵̧
¸ñ·Ï
|
|
|  |
|