¿ÉÉìËõÐÔÊÇÒ»ÖÖ¶ÔÈí¼þϵͳ´¦ÀíÄÜÁ¦µÄÉè¼ÆÖ¸±ê£¬¸ß¿ÉÉìËõÐÔ´ú±íÒ»ÖÖµ¯ÐÔ£¬ÔÚϵͳÀ©Õ¹¹ý³ÌÖУ¬Äܹ»±£Ö¤ÍúÊ¢µÄÉúÃüÁ¦£¬Í¨¹ýºÜÉٵĸ͝£¬¾ÍÄÜʵÏÖÕû¸öϵͳ´¦ÀíÄÜÁ¦µÄÔö³¤¡£
ÔÚϵͳÉè¼ÆµÄʱºò£¬³ä·ÖµØ¿¼ÂÇϵͳµÄ¿ÉÉìËõÐÔ£¬Ò»·½ÃæÄܹ»¼«´óµØ¼õÉÙÈÕºóµÄά»¤¿ªÏú£¬²¢°ïÖú¾ö²ßÕß¶ÔÓÚͶ×ÊËùÄÜ»ñµÃµÄ»Ø±¨½øÐиü¼Ó¾«×¼µÄ¹À¼Æ£»ÁíÒ»·½Ã棬¸ß¿ÉÉìËõÐÔµÄϵͳÍùÍù»á¾ßÓиüºÃµÄÈÝÔÖÄÜÁ¦£¬´Ó¶øÌṩ¸üºÃµÄÓû§ÌåÑé¡£
WEB½»»¥Ê½ÏµÍ³µÄ¿ÉÉìËõÐÔÖ÷ÒªÌåÏÖÔÚÁ½¸ö·½Ã棺
1.ƽ̨µÄ¿ÉÉìËõÐÔ£ºËæ×ÅWEB¼¼ÊõµÄ·¢Õ¹£¬Ô½À´Ô½¶àµÄƽ̨¿ªÊ¼Ê¹ÓÃWEB¼¼ÊõÀ´¹¹½¨ÏµÍ³£¬Ò»·½Ã治ͬµÄƽ̨ÌṩµÄ»·¾³Ö§³Ö´æÔÚן÷ÖÖ²îÒ죻ÁíÒ»·½ÃæËæ×ÅÆ½Ì¨µÄ·¢Õ¹£¬²»¶ÏµÄ»áÓÐһЩ¾Éƽ̨Í˳öÀúÊ·Îę̀£¬ÐÂÆ½Ì¨×ª¶ø³ÉΪÖ÷Á÷ƽ̨£»Òò´Ë¹¹½¨µÄWEBϵͳÐèÒªÄܹ»¿ìËÙµÄÏìÓ¦´ËÀà±ä»¯¾ÍÐèÒªÆä¾ß±¸Á¼ºÃµÄƽ̨ÉìËõÐÔ
2.Ä£¿éµÄ¿ÉÉìËõÐÔ£ºËæ×Åϵͳ¹¦Äܲ»¶ÏÔöɾ¸üÐÂÐèÇóµÄ±ä»¯£¬ÏµÍ³¿ÉÄÜ»á±äµÃÔ½À´Ô½¸´ÔÓ£¬ÈßÓàÐÅÏ¢Ò²¿ÉÄÜ»áÔ½À´Ô½¶à£¬¸Ä¶¯Ëù´øÀ´µÄÓ°Ï췶ΧҲ¿ÉÄÜ»áÔ½À´Ô½´ó£¬Òò´ËÁ¼ºÃµÄÄ£¿éÉìËõÐԿɱ£Ö¤ÏµÍ³¾ßÓÐÁ¼ºÃµÄ¿Éά»¤ÐÔ£¬ÈÃϵͳʼÖÕ´¦ÓÚ×î¼Ñ״̬
WEB½»»¥Ê½ÏµÍ³µÄÖ÷ÒªÓ¦ÓðüÀ¨£º
1.×ÀÃæ¶Ë/ÒÆ¶¯¶ËÍøÕ¾Ààϵͳ£¨Èç ÍøÒ×ÔÆ¿ÎÌá¢Ò×ÐÅWebIM¡¢LofterÒÆ¶¯WEB°æµÈ£©
2.ÒÆ¶¯»ìºÏÓ¦Óã¨Èç ÍøÒ×ÔÆÏà²áIPad°æ¡¢LofterµÈ£©
3.×ÀÃæ»ìºÏÓ¦Óã¨Èç ÍøÒ×ÔÆÒôÀÖPC°æ¡¢ÍøÒ×ÓÊÏäÖúÊֵȣ©
±¾ÏµÁÐÎÄÕÂÖ÷Òª·ÖΪÁ½¸öÖ÷Òª²¿·Ö¶Ô¿ÉÉìËõÐÔ½øÐвûÊö£¬·Ö±ðÊÇÆ½Ì¨µÄ¿ÉÉìËõÐÔºÍÄ£¿éµÄ¿ÉÉìËõÐÔ¡£±¾ÎÄÊÇϵÁÐÎÄÕµĵÚһƪ£¬ÌÖÂÛÆ½Ì¨µÄ¿ÉÉìËõÐÔ¡£
ƽ̨µÄ¿ÉÉìËõÐÔ
WEB½»»¥Ê½ÏµÍ³¶Ôƽ̨µÄ¿ÉÉìËõÐÔÖ÷Òª±íÏÖΪ£º
1.¿ÉÀ©Õ¹ÐÔ£º¶ÔÓÚÐÂÐËÆ½Ì¨Äܹ»¿ìËÙ½øÐÐÖ§³Ö
2.¿ÉËõ¼õÐÔ£º¶ÔÓÚ¹ýʱµÄƽ̨ÈßÓàÐÅÏ¢Äܹ»ÒÔ×îСµÄÐ޸ķ½Ê½ÌÞ³ý
ÎÒÃÇÏȽéÉÜÒ»ÏÂWEB½»»¥Ê½ÏµÍ³µÄÄ¿±êƽ̨µÄÇé¿ö¡£
ƽ̨·ÖÀà
¸ù¾ÝϵͳËùÔÚÈÝÆ÷µÄ²îÒ죬ÎÒÃǽ«Æ½Ì¨·ÖΪä¯ÀÀÆ÷ƽ̨ºÍ»ìºÏÓ¦ÓÃÆ½Ì¨Á½´óÀà¡£¸÷·ÖÀàµÄÏêϸ˵Ã÷¼ûÏÂÎÄËùÊö¡£
ä¯ÀÀÆ÷ƽ̨
°´ÒýÇæ»®·Ö
ä¯ÀÀÆ÷ƽ̨£¬°´ÕÕÖ÷Á÷ÒýÇæ¿ÉÒÔ»®·ÖΪÒÔϼ¸Àࣺ

»ìºÏÓ¦ÓÃÆ½Ì¨
¸ù¾Ý»ìºÏÓ¦ÓõÄËÞÖ÷ƽ̨µÄ²îÒ죬ÎÒÃǽ«»ìºÏÓ¦ÓõÄÄ¿±êƽ̨·ÖΪÒÔϼ¸Àࣺ


ƽ̨ÊÊÅä
AOP£¨Aspect-Oriented Programming£©£ºÃæÏòÇÐÃæµÄ±à³Ì·¶Ê½£¬ÆäºËÐÄ˼ÏëÊǽ«ºáÇйØ×¢µã´ÓÖ÷¹Ø×¢µãÖзÖÀë³öÀ´£¬Òò´ËÌØ¶¨ÁìÓòµÄÎÊÌâ´úÂë¿ÉÒÔ´Ó±ê×¼ÒµÎñÂß¼ÖзÖÀë³öÀ´£¬´Ó¶øÊ¹µÃÖ÷ÒµÎñÂß¼ºÍÁìÓòÐÔÒµÎñÂß¼Ö®¼ä²»»á´æÔÚÈκÎñîºÏÐÔ¡£
ÕâÀïÎÒÃÇ¿ÉÒÔ½è¼øAOP˼ÏëÀ´ÊµÏÖÆ½Ì¨µÄÊÊÅä²ßÂÔ£¬½áºÏ²»Í¬µÄƽ̨ʵÏÖÂß¼£¬ÎÒÃÇ¿ÉÒÔÈÏΪ¶ÔÓÚʹÓù淶¡¢±ê×¼À´ÊµÏÖÒµÎñÂß¼µÄ²¿·ÖΪÎÒÃǵÄÖ÷¹Ø×¢µã£¬¶ø²»Í¬Æ½Ì¨¿ÉÒÔ×öΪÈô¸ÉµÄÇÐÃæ¹Ø×¢µã½øÐзâ×°£¬¸÷ƽֻ̨Ðè¹Ø×¢×Ô¼ºÆ½Ì¨Ï¶Աê×¼µÄÐÞÕýÂß¼¼´¿É£¬Òò´Ë¿ÉÒÔͨ¹ýÔö¼Ó¡¢É¾³ýƽ̨ÐÞÕýµÄÇÐÃæÂß¼À´ÊµÏÖ¶Ô²»Í¬Æ½Ì¨µÄÊÊÅä¡£
ʵÏÖʱÎÒÃÇÊ×ÏÈÌáÈ¡±ê×¼ÒµÎñÂß¼£¬È»ºó¸÷ƽ̨¸ù¾Ýʵ¼ÊÇé¿öʵÏÖ¶ÔÒµÎñÂß¼µÄÐÞÕý£º

1.±ê×¼ÒµÎñÂß¼£ºÖ÷¹Ø×¢µã£¬ÕâÀïÖ÷ÒªÊÇʹÓøù¾ÝW3C¡¢ES±ê×¼À´ÊµÏÖµÄÒµÎñÂß¼
2.ǰÖÃÆ½Ì¨ÐÞÕýÂß¼£ºÁìÓòÌØ¶¨¹Ø×¢µã£¬Ö÷ÒªÊǸù¾ÝÆ½Ì¨ÌØÐÔ¶Ô±ê×¼ÔÚ¸ÃÆ½Ì¨ÏµÄÐÞÕý£¬ÐÞÕýÂß¼»áÏÈÓÚ±ê×¼Âß¼Ö´ÐÐ
3.ºóÖÃÆ½Ì¨ÐÞÕýÂß¼£ºÍ¬Ç°ÖÃÆ½Ì¨ÐÞÕýÂß¼£¬Ò²ÊÇÁìÓòÌØ¶¨¹Ø×¢µã£¬ÐÞÕýÂß¼»áÔÚ±ê×¼Âß¼Ö´ÐкóÔÙÖ´ÐÐ
¸ù¾Ý´Ë˼·ÎÒÃǶԱÈÒÔÏÂÁ½¶Î´úÂ룺
´úÂëÒ»£ºÄ¿Ç°³£ÓÃµÄÆ½Ì¨ÊÊÅ䷽ʽ
function doSomething(){ if(isTrident){ // TODO trident implement }else if(isWebkit){ // TODO webkit implement }else if(isGecko){ // TODO gecko implement }else if(isPresto){ // TODO presto implement }else{ // TODO w3c implement } } // ÉϲãÓ¦ÓÃʹÓà doSomething(1,2,3); |
´Ë·½Ê½¶ÔËùÓÐÆ½Ì¨µÄÐÞÕýÂß¼¾ùÔÚÖ÷Âß¼ÖÐʵÏÖ£¬´æÔÚÒÔϱ׶ˣº
1.¶ÔÆ½Ì¨ÌØÓеÄÐÞÕýÂß¼ñîºÏÔÚÖ÷Âß¼ÖУ¬Æ½Ì¨ÌØÓеĸüбØÈ»ÒýÆðÖ÷Âß¼µÄ¸üÐÂ
2.¶ÔÓÚÐÂÔö»òɾ³ýƽ̨µÄÖ§³Ö±ØÐëÐ޸ĵ½Ö÷ÒµÎñÂß¼
3.ÎÞ·¨·ÖÀë²»±ØÒªµÄƽ̨ÐÞÕý£¬±ÈÈç»ùÓÚwebkitÒýÇæµÄÒÆ¶¯Æ½Ì¨Ó¦Óò»ÐèÒªÆäËûƽ̨µÄÐÞÕýÂß¼
´úÂë¶þ£º½è¼øAOP˼ÏëµÄƽ̨ÊÊÅ䷽ʽ
function doSomething(){ // TODO w3c/es implement } // ÉϲãÓ¦ÓÃʹÓà doSomething(1,2,3); |
Õë¶ÔTridentƽ̨ÊÊÅäµÄÂß¼£¬±ÈÈç trident.jsÖÐ
// trident implement doSomething = doSomething._$aop( function(_event){ // TODO trident implement }, function(_event){ // TODO trident implement } ); |
¶Ô±È´úÂëÒ»£¬ÎÒÃÇ¿ÉÒÔ·¢ÏÖ½è¼øAOP˼ÏëµÄ½Ó¿ÚÊÊÅ䷽ʽ·ÖÀëÁ˱ê×¼ÒµÎñÂß¼ºÍÆ½Ì¨ÌØÓÐÒµÎñÂß¼£¬ÊÇ·ñÔö¼ÓÆ½Ì¨ÌØÓÐÒµÎñÂß¼²¢²»»áÓ°ÏìÖ÷ÒµÎñÂß¼µÄÖ´ÐУ¬¶ø¶ÔÓÚÆ½Ì¨ÐÞÕýÂß¼µÄÇÐÈëÔò¿ÉÒÔÖ±½Óͨ¹ýÅäÖõķ½Ê½Áé»îµÄ½øÐÐÔöɾ£¬Òò´ËÎÒÃÇ¿ÉÒÔ´ÓÖеõ½ÒÔϺô¦£º
1.Ö÷Âß¼ºÍÆ½Ì¨ÌØÓÐÂß¼ÎÞñîºÏÐÔ£¬¿ÉËæÒâ·ÖÀë¡¢ÕûºÏ
2.¶ÔÓÚÐÂÔöƽ̨ÊÊÅäÖ»ÐèÐÂ¼ÓÆ½Ì¨ÌØÓÐÂß¼¼´¿É£¬¶øÎÞÐèÓ°Ïìµ½Ö÷ÒµÎñÂß¼
3.¿Éͨ¹ýÅäÖÿØÖÆÖ§³ÖµÄÄ¿±êƽ̨£¬ÓÐÑ¡ÔñÐԵĵ¼³öÆ½Ì¨ÌØÓÐÒµÎñÂß¼
ʵÏÖ¾ÙÀý
NEJ¿ò¼Ü½è¼øAOP˼ÏëÌṩÁËÅäÖÃʽµÄƽ̨ÊÊÅäϵͳ£¬¶ÔÓÚÕⲿ·ÖµÄÏêϸÐÅÏ¢¿É²ÎÔÄNEJµÄ¡¶ÒÀÀµ¹ÜÀíϵͳ¡·ºÍ¡¶Æ½Ì¨ÊÊÅäϵͳ¡·Á˽â¸üΪÏêϸµÄÐÅÏ¢£¬ÒÔϽö¾ÙÀý˵Ã÷NEJÖÐÊÊÅäµÄʹÓ÷½Ê½¡£
Ò»¸öµäÐ͵ÄÊÊÅä¿Ø¼þ½á¹¹ÈçÏÂͼËùʾ£º

ÕâÀïµÄwidget.jsÊǿؼþÒµÎñÂ߼ʵÏÖÎļþ£¬Ôڴ˿ؼþµÄʵÏÖÖлáÒÀÀµµ½´æÔÚÆ½Ì¨²îÒìµÄAPI£¬ÆäÒÀÀµ´úÂëÈçÏÂËùʾ
NEJ.define([ 'util/event', '{platform}api.js' ],function(t,h,p){ // TODO
}); |
ÕâÀï¶Ô {platform}api.js µÄ´¦Àí·½Ê½ÈçÏÂͼËùʾ£¬ÕâÀïµÄ./Ïà¶ÔÓÚµ±Ç°µÄ´úÂëÎļþ¼´widget.jsÎļþËùÔÚµÄĿ¼

ÕâÀïµÄapi.jsÎļþΪÐèÆ½ËûÊÊÅäAPIµÄ±ê׼ʵÏÖÂß¼£¬¶øapi.patch.jsÎļþÔòÀûÓÃNEJ.patch½Ó¿Ú¶Ô¸÷ƽ̨×ö°´ÐèÊÊÅäÂß¼£¬Í¬Ê±´ò°üʱҲ¸ù¾ÝNEJ.patch½Ó¿ÚÖÐ¶ÔÆ½Ì¨µÄÌõ¼þʶ±ð×ö°´ÐèÊä³ö£¬ÓÉÓÚapi.patch.jsÎļþ×îÖջᰴÐèÊä³ö£¬Òò´ËÔÚ´ËÎļþÖгýÁËʹÓÃNEJ.patch×öƽ̨ÊÊÅäÂß¼Í⣬²»ÔÊÐí°üº¬ÆäËüÒµÎñÂß¼¡£
// ´ËÎļþÖ»Äܶ¨ÒåNEJ.patch²»¿ÉÖ´ÐÐÆäËûÒµÎñÂß¼ // ´ò°üÊä³öʱ½ö¸ù¾Ýƽ̨ÅäÖÃÊä³öËùÐè´¦ÀíÂß¼ // ʵ¼ÊÇé¿ö¿´ÐèÇ󣬿ɽ«Æ½Ì¨Ïà¹Ø²¿·ÖÂß¼¶ÀÁ¢µ½µ¥¶ÀµÄÄ£¿éÖÐ
NEJ.define([
'./hack.js'
],function(h){
// Õë¶Ôtridentƽ̨µÄ´¦ÀíÂß¼
NEJ.patch('TR',function(){
// TODO
});
// Õë¶Ôgeckoƽ̨µÄ´¦ÀíÂß¼
NEJ.patch('GR',[
'./hack.firefox.js'
],function(fh){
// TODO
});
// Õë¶ÔIE6ƽ̨µÄ´¦ÀíÂß¼
NEJ.patch('TR==2.0',['./hack.ie6.js']);
// Õë¶ÔIE7-IE9µÄ´¦ÀíÂß¼
NEJ.patch('3.0<=TR<=5.0',function(){
// TODO
});
// ÕâÀï±ØÐëͬhack.jsÎļþµÄ·µ»ØÖµÒ»ÖÂ
return h;
}); |
×îºóÎÒÃÇÖ»ÐèÒªÅäÖòúÆ·µÄÄ¿±êƽ̨¼´¿ÉÊä³öƽ̨¶ÔÓ¦µÄÊÊÅ䣬¶ø²»»á´æÔÚÆäËûƽ̨µÄ¶îÍâÓ°Ï죺
<script src="/path/to/nej/define.js?p=wkgktd"></script> <script src="/path/to/nej/define.js?p=cef"></script> |
ƽ̨±ä¸ü
ͨ¹ýÒÔÉÏʵÏÖ¾ÙÀýÎÒÃÇ¿ÉÒÔ¿´µ½µ±Æ½Ì¨·¢Éú±ä¸üʱÎÒÃÇ¿ÉÒÔ¿ìËÙ½øÐÐÀ©Õ¹»òËõ¼õ
ƽ̨À©Õ¹
µ±ÓÐÐÂÆ½Ì¨ÐèÒª×÷ΪϵͳĿ±êƽ̨ʱ£¬ÎÒÃÇÖ»ÐèÒª×öÒÔϹ¤×÷£º
1.Ôö¼Óƽ̨ÅäÖÃʶ±ð·û£¬Èçnxw
2.ʶ±ð¸Ãƽ̨Óë±ê×¼´æÔڵIJîÒ죬Ôö¼ÓÆ½Ì¨ÌØÓÐÒµÎñÂß¼ÖÁpatch
3.ϵͳ¶Ôƽ̨ÅäÖò¿·ÖÔö¼ÓÐÂÌíµÄʶ±ð·û£¬Èç
ÔÆ½Ì¨ÊÊÅ䣺<script src="/path/to/nej/define.js?p=wkgktd"></script>
ÐÂÔöƽ̨ÊÊÅ䣺<script src="/path/to/nej/define.js?p=wkgktdnxw"></script>
¼´¿ÉÍê³É¶Ôƽ̨µÄÀ©Õ¹£¬¶ø²»»áÓ°Ïìµ½ÔÓеÄÒµÎñÂß¼¡£
ƽ̨Ëõ¼õ
µ±ÏµÍ³ÊÊÅäµÄÄ¿±êƽ̨ÓÉÓÚijÖÖÔÒòÍ˳öÀúÊ·Îę̀ʱ£¬ÏµÍ³Ò²ÐèÒª½«¸Ãƽ̨µÄÈßÓà´úÂë´ÓϵͳÖÐÌÞ³ý£¬ÎÒÃÇÖ»ÐèÒª×öÒÔϹ¤×÷£º
ϵͳ¶Ôƽ̨ÅäÖò¿·Öɾ³ýÒªÌÞ³ýµÄƽ̨±êʶ£¬È磺
ÔÆ½Ì¨ÊÊÅ䣺<script src="/path/to/nej/define.js?p=wkgktd"></script>
Ëõ¼õºóƽ̨ÊÊÅ䣺<script src="/path/to/nej/define.js?p=wk"></script>
¼´¿ÉÍê³É¶Ôƽ̨µÄËõ¼õ£¬¶øÎÞÐèÐÞ¸ÄÈκÎÒµÎñÂß¼¡£ |