<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的技術貼的首發地址:http://atian25.javaeye.com/

    天豬部落閣 - (ExtJS && AS3 && Java)

    專注于ExtJS && AS3 && Java

    常用鏈接

    統計

    FLASH

    WORK

    友情鏈接

    最新評論

    2008年7月24日 #

    ExtJS 3.0 在skpet里面的代碼提示 (含破解jar)

    原文地址:http://atian25.javaeye.com/blog/426824


    官方的extjs3.0包里面沒有提供ext.jsb文件.

    于是去官方論壇問了下, 3.0他們提供的是jsb2,基于json的.

    現在spket還不支持。

     

    有人重新做了個臨時的3.0的jsb文件,如附件。

     

    用法:

     

    1.下載后放到3.0的src目錄下 (一定要切記...我就是一時糊涂放錯了...在官方那鬧了笑話 -.-!!)

     

    2.然后在skpet中如下圖設置:

     


     

     

    3.設置為默認profile


     

    4.設置完后,關閉所有標簽頁 ,重啟skpet就ok了.

     

    5.提示效果如下圖:


     

     

    關于spket和extjs的ide,請參考:http://www.javaeye.com/topic/161161

     

     

    09.07.23更新:

    skpet出新版本了,支持extjs的jsb2.官方下載:

    Spket IDE 1.6.17 released - 22 July 2009

    http://spket.com/

     

    09.08.11更新

    spket1.6.16的破解包,覆蓋即可.

     下載地址見http://atian25.javaeye.com/blog/426824文末


    09.08.12更新:

    ext.jsb2已經包含在官方的壓縮包里面了.

    或者你可以從我另一篇blog中下載:http://atian25.javaeye.com/admin/blogs/445480

    注意:

    1.該jsb2文件需要spket1.6.17

    2.放置目錄為根目錄而不是src目錄 (跟前面的jsb文件不同)

     

    - by tz

    posted @ 2009-08-13 21:50 天豬 閱讀(2821) | 評論 (2)編輯 收藏

    ExtJS 2.3/3.0 定制你所需要的模塊

    原文地址:http://atian25.javaeye.com/blog/445480  
    天豬部落閣 - 專注于(ExtJS && AS3 && Java)
    附件地址見原文地址文末

    很實在的一個需求,就是我們只需要extjs的一部分功能,不想把整個類庫都包含進來.

     

    所以讓我們來定制extjs吧~

     

     

    1. ExtJS 1.1.1或2.3.0

     

    可以用官方的在線工具來定制:http://extjs.com/products/extjs/build/

     

    使用教程:

    e文:http://extjs.com/learn/Tutorial:Building_Ext_From_Source

    中文:http://extjs.org.cn/node/364

     

    2. EXTJS 3.0

     

    現在還沒有在線版,可以通過以下方法來自己定制:

     

    1. 下載Ext 3.0.0 SDK. http://extjs.com/products/extjs/download.php?dl=extjs3 
    2. 下載JSBuilder2. http://extjs.com/products/jsbuilder/   (或者看文末的附件)
    3. 下載Ext 3.0.0的ext.jsb2文件   http://extjs.com/forum/showthread.php?p=354473  (或者看文末的附件)

    4.  把JSBuilder2解壓jar到extjs根目錄下,ext.jsb2也放到根目錄下

    5.  用你的文本編輯器編輯ext.jsb2文件,僅保留你需要的模塊

    6.  jsb2文件中的deployDir: 'ext-3.0.0-build'表示相對輸出目錄

    7.  cmd,切換到ext根目錄下,執行:

     

    G:\Learning\Web\Javascript\ExtJS\ext-3.0.0> java -jar "JSBuilder2.jar" -p ./ext.jsb2 -d ./ 

     

    8.等待刷屏完畢后去你在jsb2中指定的目錄下找輸出吧.

     

     

    3.試驗

    一個試驗的例子,僅包含Tree組件,如附件

     

    1) resource部分未作過濾

    2) 注意依賴關系,如

            name: 'Trees',
            file: 'pkgs/pkg-tree.js',
            isDebug: true,
            pkgs: ['pkgs/cmp-foundation.js']

     

    3)輸出的文件樹如下:

     

    adapter\
    |--ext\
    |----ext-base.js 
    |----ext-base-debug.js

    pkgs\
    |--cmp-foundation.js 
    |--ext-foundation.js 
    |--pkg-tree.js 
    |--cmp-foundation-debug.js
    |--ext-foundation-debug.js
    |--pkg-tree-debug.js

    resources\
    license.txt

    posted @ 2009-08-13 21:48 天豬 閱讀(2396) | 評論 (1)編輯 收藏

    ExtJS 3.0 Designer Preview (官方的IDE可視化工具)

    原文地址: http://atian25.javaeye.com/blog/444581

     

    官方大爆料... http://extjs.com/blog/2009/08/10/ext-js-30-be-outstanding/

     

    Ext JS 3.0.0 Patch Release  --- 要收費...等流放吧 ^_^
    Ext JS Public Commit Log 
    JS Builder 2 
    CSS Refactor & Improvements 
    Memory Management Improvements

     

    Designer Preview

     

    Constructing your interfaces in code will be a thing of the past. We are releasing a Designer Preview that will allow you to experiment with the designer interface and to explore how configs affect your layout. Soon, you will be able to build your application components using base Ext components and Certified User Extensions.

    Code generation is currently not available. Our intentions are to charge a fee for this service and to enable our community to create and sell their creations on our marketplace. Our goals are lofty. We want to be the iTunes of Web App Development.

     

    附件中有下載.

     

    預覽版還不提供代碼生成功能.出了也是會收費的...

    不過嘛...群眾的智慧...

     

    另,安裝該AIR應用后,可以自己去看下\Ext Designer Preview\deploy\designer-complete.js的源碼.

    http://jsbeautifier.org/ 來格式化

    附件中也有格式化后的代碼,9k行.




    下載地址見http://atian25.javaeye.com/blog/444581文末



    posted @ 2009-08-13 21:46 天豬 閱讀(6746) | 評論 (3)編輯 收藏

    [翻譯]ExtJS ChangeLog 2.2 -> 3.0.0 -- by tz

    http://atian25.javaeye.com/blog/426310


    郁悶...本來都寫完的了...結果插入一個表格...JE編輯器就出問題了...內容不見了一半...格式也全亂了...得重來...

    翻譯的不好,請多見諒。其中有些地方覺得太拗口了,就直接給出原文了,如果你有更好的翻譯,請跟帖,謝謝。

    原文地址: http://extjs.com/forum/showthread.php?t=70352

    Changes, Additions  (roughly organized alphabetically)

    1.Ext

    •  新增:
      •  iterate 方法 - 遍歷一個數組或對象,對每個元素都執行指定的函數
      •  isNumber 方法 - 判斷傳遞的參數對象是否是數字
      •  isString 方法 - 判斷傳遞的參數對象是否是字符串
      •  isBoolean 方法 - 判斷傳遞的參數對象是否是布爾值
      •  isDefined 方法 - 判斷傳遞的參數對象是否已經定義

    2.Ext.lib.Ajax

    • 變更: Ajax responses. The core adapter file in the Ext.lib.Ajax class has been changed in line with the W3 XMLHttpRequest specification. The response object which emulates the XHR now has getResponseHeader and getAllResponseHeaders as f unctions rather than Arrays to keep inline with the real XHR object. So, anyone who was currenltly examining headers using an Array (as inherited from YUI via yui-ext) will need to change to use a function.

    3.Ext.Componet

    • 新增:
      • A Component's Observable events may now be set to bubble up the Component-ownerCt axis.

    4.Ext.BoxComponent

    • 新增:
      • getWidth() 
      • getHeight()
      • getOuterSize()

    5.Ext.Button

    • 新增:
      • Rather than being limited to only positioning buttons in a buttons configuration, they can now be placed anywhere you please. 你的按鈕現在可以放在任意地方,而不僅限于buttons配置項
      • Button現在可以縮放為任意高寬,并且有高級的文字布局。 (Buttons can now scale to any height or width and have advanced text positioning.)
      •  新的配置:scale: 'small'  ,  iconAlign : 'left' , arrowAlign : 'right'
    • 變更:
      • Button現在是一個有效的BoxComponent,可以被布局管理器管理。 (Button is now a valid BoxComponent and can partake in layout management. )
      • Button的實現已經完全重寫,所以舊版本時候寫的自定義樣式/主題需要相應的修改。(The markup for buttons is completely different and will require changes if you had implemented a custom theme. )
    6.Ext.Component
    • 新增:
      • afterrender事件
      • ref 配置項 - establish a named reference for an object an ancestor Container (mitigate dependency on 'id' and Ext.getCmp).
      • ptypes - ComponentMgr manages plugins similar to xtypes (use Ext.preg similar to Ext.reg)
      • nextSibling
      • previousSibling
      • getDomPositionEl
    7.Ext.ComponentMgr
    • 新增:
      • isRegistered 方法 - 檢查一個xtype是否已經被注冊
    8.Ext.Container
    • 新增:
      • get()
    9.Ext.data.Reader
    • 已過時:
      • 推薦使用id, 請用 propertyIdidIndex
    10.Ext.data.Store
    • 新增:
      • store xtypes
      • autoDestroy  配置項 - 當store綁定的component被銷毀的時候,銷毀該Store
      • setBaseParam()
    • 變更:
      • baseParams可以被load方法傳遞的同名參數所覆蓋。( baseParams may be overwritten by params of same name passed to load() )
    • 已過時:
      • 不推薦使用 id ,請用 storeId 代替它
      • 不推薦使用 loadexception 事件,請用 exception 事件
      • SimpleStore 更名為 ArrayStore
    11.Ext.Element
    • 新增:
      • mouseenter事件
      • mouseleave事件
    • 變更/已過時:
      • getAttributeNS() - 已過時,用getAttribute()代替
      • autoHeight() - 移除
      • alignTo() - 變更參數"position"
      • query() - 新增參數"unique"
      • focus() - 新增參數"defer"
    12.Ext.EventManager
    • 變更:
      • within() - can now also check if the passed element is the target or related target
    13.Ext.form
    • 新增:
      • 當動態添加Container到FormPanel時,Fields會被添加到BasicForm's的集合中。所以BasicForm's setValues 方法現在可以始終對動態添加的Fields有效。(When dynamically adding Containers anywhere in a FormPanel, any  Fields are now found and added to the BasicForm's Collection. So BasicForm's setValues  method  will now work consistently with dynamically added Fields.)
    • 變更:
    14.Ext.grid.GridPanel
    • 新增:

      • columnLines 配置項 (boolean) - adds class ' x-grid-with-col-lines'
      •  Ext.grid.Column
        • 用來作為columns參數傳遞給ColumnModel (Instances of this class are used as columns passed to ColumnModel)
        •  xtypes可以用來指定一些預先配置好的renderer(xtypes can be used to specify a preconfigured renderer)
        • renderer may be specified in additional ways
      • Grid RowEditor Class
      • Grid like ListView and ListView.Sorter Classes (譯注:就是一個用DataView+XTemplate來模擬的Grid,輕量)
      • Grid BufferedView Class. Buffered GridView enhances performance by waiting to render rows until they are visible.(譯注:對大數據量的Grid有明顯的性能提升,實際上就是只渲染用戶可見的列,拖動的時候再渲染其他.官方還有其他的一個擴展 Ext.ux.LiveGrid,詳見:http://extjs.com/forum/showthread.php?t=17791)
    15.Layouts:
    16.Ext.Menu
    • 新增:
      • Menu Overflow. Whenever a menu gets so long that the items won’t fit the viewable area, it provides the user with an easy UI to scroll the menu. This feature is turned on by default and can be disabled by the configuration option enableScrolling.(譯注:簡單的說就是Menu溢出后的滾動效果,默認是開啟該效果,可以通過enableScrolling來配置,詳 見官方示例)
    • 變更/已過時:
      • Toolbar and Menu are now proper Containers (formerly extended from BoxComponent). 現在Toolbar和Menu都繼承Container
      • Breaking change: MenuItem的ids現在已經不是局部變量了,所以你不能在多個menu里面用一個id.建議:用唯一的id或者用itemIds來替代 它。(MenuItem ids are no longer local to their menu but global component ids. This means that you can't use the same id in multiple menus. Suggested fix: Use unique ids or switch to using itemIds.)
      • As well as Menu being a Container, this also means Menu can be a regular Component. Menu did not extend BoxComponent before, but was out on its own. Now, it can behave either as a regular floating Menu, or, if configured floating: false, it can be used as a usual inline Component of a Container.(譯注:簡單的說就是由于menu的繼承改變,現在你可以設置Menu為浮動的,或者像平常的組件那樣使用它)
      • DateItem和ColorItem已經被移出,因為沒有必要了,現在你可以把任意組件放入menu的items中
      • autoWidth() - 變更為autoSize()
    17.Ext.MenuButton - 該類已經被移除,用SplitButton代替它

    18.Ext.StatusBar - 該類已經被移出core庫,在3.0final版會有個Ext.ux.StatusBar

    19.Ext.Toolbar
    • 新增:
      • Toolbar Overflow. A menu for items that don’t fit the visible toolbar area will be created by default and can be disabled with the configuration option enableOverflow. Items in the menu react with the same handlers as the toolbar items.(譯注:簡單的說就是Toolbar溢出后的滾動效果詳見官方示例)
    • 變更:
      • Toolbar and Menu are now proper Containers (formerly extended from BoxComponent).現在Toolbar和Menu都繼承Container
    20.Ext.Tooltip
    • 新增:
      • delegate option added so one Tooltip can handle multiple child elements of its target based on selection using the delegate config.(譯注:新增的這個屬性很有用,就是通過設置的selector對某個元素的子對象設置Tip,在2.0的時候我們經常需要的Gird RowTip,CellTip都可以實現了,不需要實例化很多Tip對象)
      • AnchorTips - Tooltips now support an anchor configuration which will allow you to bring attention to a particular element or component with a small callout arrow.(譯注:簡單的說就是箭頭Tip,詳見:http://extjs.com/deploy/dev/examples/simple-widgets/qtips.html)
    21.Ext.util.Format
    • 新增/變更:
      • ellipsis() - "word" parameter added
      • focus() - "defer" parameter added
      • number() - added
      •  numberRenderer() - added
      • plural() - added
    22.Ext.util.Observable
    • 新增:
      • Ext.util.Observable.observeClass() - Class level observability 類級別的觀察/通知
    23.ux's that worked prior to 3.x may need some tweaking (especially if the ux used private properties). ux's should be checked they are utilizing the latest preferred techniques and properties. More notes here. 舊的擴展需要相應的進行修改,詳見:http://extjs.com/forum/showthread.php?p=338913#post338913

    24.CSS. general updates, as well as refactoring to split css into visual and structural files to simplify theming.

    25.新增:圖表Charting (Chart, PieChart, CartesianChart, LineChart, BarChart - numeric, time, category axis) -- (譯注:其實就是YUI Chart,可以看:http://developer.yahoo.com/yui/charts/ , 或者可以看下我的blog:ExtJS 3.0 Chart 小用一下 http://atian25.javaeye.com/blog/413947)

    26.新增:Ext.FlashComponent (譯注:似乎是用了swfobject,管理swf方便多了,不用adobe那又長又臭的代碼)

    27.新增:Direct (Direct, Ext.data.DirectStore, Ext.data.DirectProxy) - 官方3.0極力推出的東西,詳見:http://extjs.com/blog/2009/05/13/introducing-ext-direct/

    28.新增:Writer

    29.新增:Ext.Spacer - xtype 'spacer' (for empty box component)

    30.新增:ButtonGroup (xtype: 'buttongroup')  (譯注:按鈕組,仿office2007風格,詳見:http://extjs.com/deploy/dev/examples/button/buttons.html)

    31.新增:GroupTabs - (譯注:詳見http://extjs.com/deploy/dev/examples/grouptabs/grouptabs.html)

    32.增強:Debug Console (譯注:還是firebug好用,不過它可以看到store等,詳見:http://extjs.com/deploy/dev/examples/debug/debug-console.html)

    33.新增:Ext.Error


    Changes to some example classes: 示例類的修改
    (不敢用javaeye編輯器的表格了..自己將就著看吧...)

    Class                                              x(p)type                Deprecates
    Ext.ux.data.PagingMemoryProxy                                   Ext.data.PagingMemoryProxy
    Ext.ux.form.FileUploadField             fileuploadfield         Ext.ux.FileUploadField
    Ext.ux.form.SelectBox                     selectbox                Ext.ux.SelectBox
    Ext.ux.form.SpinnerField                 spinnerfield             Ext.form.SpinnerField (remove xtype=spinner)
    Ext.ux.form.ItemSelector                 itemselector           Ext.ux.ItemSelector
    Ext.ux.form.MultiSelect                    multiselect              Ext.ux.Multiselect  
    Ext.ux.grid.CheckColumn                checkcolumn (p)      
    Ext.ux.grid.GroupSummary                                            Ext.grid.GroupSummary
    Ext.ux.grid.HybridSummary                                            Ext.grid.HybridSummary
    Ext.ux.grid.RowEditor                     roweditor   (p)
    Ext.ux.grid.RowExpander               rowexpander (p)      Ext.grid.RowExpander
    Ext.ux.grid.TableGrid                                                       Ext.grid.TableGrid
    Ext.ux.GMapPanel                          gmappanel
    Ext.ux.SliderTip
    Ext.ux.SlidingPager
    Ext.ux.Spinner               
    Ext.ux.Spotlight                                                              Ext.Spotlight
    Ext.ux.Statusbar                                                            Ext.Statusbar
    Ext.ux.TabCloseMenu                    tabclosemenu (p)
    Ext.ux.tree.ColumnTree                 columntree              Ext.tree.ColumnTree
    Ext.ux.tree.ColumnNodeUI                                            Ext.tree.ColumnNodeUI
    Ext.ux.tree.XmlTreeLoader                                            Ext.ux.XmlTreeLoader

    Changes to Resources 資源的變更
    • Ensure you have updated all the Ext-provided CSS with the new CSS from version 3.
    • Ensure you have updated all the Ext-provided images with the new images from version 3.
    Additional References 其他參考

    posted @ 2009-07-15 13:26 天豬 閱讀(2883) | 評論 (0)編輯 收藏

    [原創]ExtJS Grid 自定義排序規則

    有一些需求如:

    1.一個文件管理的Grid,要求排序的時候,文件夾永遠在頂部

    2.一個顯示成功率的Grid,要求成功數+失敗數=0的數據,不參與排序,永遠在底部

    ExtJs本身并沒有暴露這個接口,所以我們只能自己重寫,如下代碼:

     1 var store = new Ext.data.JsonStore({  
     2   root:'data',  
     3   fields:[  
     4     'name',  
     5     {name:'sucCount',type:'int'},  
     6     {name:'failCount',type:'int'},  
     7     {name:'sucRate',type:'float'},  
     8     {name:'isValidateTest',type:'boolean'},  
     9     {name:'statType',type:'int'},  
    10     'testLogIds','bsc','msc','sgsn'  
    11   ],  
    12   sortInfo:{field: 'sucRate', direction: 'ASC'},  
    13   //排序規則  
    14   sortData:function(f, direction){  
    15     direction = direction || 'ASC';  
    16     var dir = direction == 'ASC' ? 1 : -1;  
    17     var st = this.fields.get(f).sortType;  
    18     //關鍵地方,重寫排序排序規則  
    19     var fn = function(r1, r2){  
    20       if(!r1.get('isValidateTest')||!r2.get('isValidateTest')){  
    21         //無效數據永遠在下面  
    22         return !r1.get('isValidateTest') ? dir : -dir;  
    23       }else{  
    24         var v1 = st(r1.data[f]), v2 = st(r2.data[f]);  
    25         return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0);  
    26       }  
    27     };  
    28     this.data.sort(direction, fn);  
    29     if(this.snapshot && this.snapshot != this.data){  
    30       this.snapshot.sort(direction, fn);  
    31     }  
    32   }  
    33 });

    posted @ 2009-07-01 10:20 天豬 閱讀(3053) | 評論 (0)編輯 收藏

    [原創]ExtJS Grid tooltip的幾種實現方式

    http://atian25.javaeye.com/blog/417361

    1.表頭提示

    在2.2里面是設置ColumnModel.tooltip ,3.0則是Column. tooltip 如下:

    1 var grid = new Ext.grid.GridPanel({  
    2   columns:[  
    3     {header:'名稱',dataIndex:'name',tooltip:'對象名稱'},  
    4     {header:'開始時間 - 結束時間 <br/>成功/失敗/成功率', dataIndex:'sucRate',tooltip:'成功/失敗/成功率'}  
    5   ]  
    6 });

    2.單元格提示

    1)使用Ext.QuickTips

    在開始的時候就執行Ext.QuickTips.init();

    然后對需要提示的單元格,重寫renderer函數,添加ext:qtitle , ext:qtip這2個屬性即可。

    這個在官方的FAQ上有詳細描述: http://extjs.com/learn/Ext_FAQ_Grid#Add_ToolTip_or_Qtip

    代碼:


     1 //option 1  
     2 //========  
     3 renderer = function (data, metadata, record, rowIndex, columnIndex, store) {  
     4     //build the qtip:  
     5     var title = 'Details for&nbsp;' + value + '-+ record.get('month') +  
     6         '-+ record.get('year');  
     7     var tip = record.get('sunday_events');  
     8    
     9     metadata.attr = 'ext:qtitle="' + title + '"+ ' ext:qtip="' + tip + '"';  
    10    
    11     //return the display text:  
    12     var displayText = '<span style="color: #000;">+ value + '</span><br />+  
    13         record.get('sunday_events_short');  
    14     return displayText;  
    15 };  
    16    
    17 //option 2  
    18 //========  
    19 renderer = function (data, metadata, record, rowIndex, columnIndex, store) {  
    20     var qtip = '>';  
    21     if(data >= 0){  
    22         qtip = " qtip='yeah'/>";  
    23         return '<span style="color:green;"+ qtip + data + '%</span>';  
    24     }else if(data < 0){  
    25         qtip = " qtip='woops'/>";  
    26         return '<span style="color:red;"+ qtip + data + '%</span>';  
    27     }  
    28     return data;  
    29 };  
    30    
    31 //option 3  
    32 //========  
    33 var qtipTpl = new Ext.XTemplate(  
    34     '<h3>Phones:</h3>',  
    35     '<tpl for=".">',  
    36     '<div><i>{phoneType}:</i> {phoneNumber}</div>',  
    37     '</tpl>'  
    38 );  
    39    
    40 renderer = function (data, metadata, record, rowIndex, columnIndex, store) {  
    41    
    42     // get data   
    43     var data = record.data;  
    44    
    45     // convert phones to array (only once)   
    46     data.phones = Ext.isArray(data.phones) ?  
    47         data.phones :   
    48         this.getPhones(data.phones);  
    49    
    50     // create tooltip   
    51     var qtip = qtipTpl.apply(data.phones);  
    52    
    53     metadata.attr = 'ext:qtitle="' + title + '"+ ' ext:qtip="' + tip + '"';  
    54    
    55     //return the display text:  
    56     return data;      
    57 };

    2)使用ToolTip

    官方也已經給出方法:

    http://extjs.com/forum/showthread.php?p=112125#post112125

    http://extjs.com/forum/showthread.php?t=55690

    以上給出的方法是可以讓一個grid里面的元素共享一個tooltip對象。一般用來做rowtip

    不過3.0有更好的方式,如下:

     

    3.行提示 RowTip

    ExtJS3.0新增的方法,設置tooltip的delegate

    代碼:


     1 var myGrid = new Ext.grid.gridPanel(gridConfig);  
     2 myGrid.on('render', function(grid) {  
     3     var store = grid.getStore();  // Capture the Store.  
     4   
     5     var view = grid.getView();    // Capture the GridView.  
     6   
     7     myGrid.tip = new Ext.ToolTip({  
     8         target: view.mainBody,    // The overall target element.  
     9   
    10         delegate: '.x-grid3-row', // Each grid row causes its own seperate show and hide.  
    11   
    12         trackMouse: true,         // Moving within the row should not hide the tip.  
    13   
    14         renderTo: document.body,  // Render immediately so that tip.body can be referenced prior to the first show.  
    15   
    16         listeners: {              // Change content dynamically depending on which element triggered the show.  
    17   
    18             beforeshow: function updateTipBody(tip) {  
    19                 var rowIndex = view.findRowIndex(tip.triggerElement);  
    20                 tip.body.dom.innerHTML = "Over Record ID " + store.getAt(rowIndex).id;  
    21             }  
    22         }  
    23     });  
    24 }); 

    4.其他方法

    監聽GridView或Store的事件,然后通過rowSelector或getRow方法來遍歷,自己加tooltip... 這個方式請無視吧

    posted @ 2009-07-01 10:14 天豬 閱讀(2502) | 評論 (0)編輯 收藏

    IE7/FF3可用的獲取異常發生所在的行數

    Error具有下面一些主要屬性:
     
        * description: 錯誤描述 (僅IE可用).
        * fileName: 出錯的文件名 (僅Mozilla可用).
        * lineNumber: 出錯的行數 (僅Mozilla可用).
        * message: 錯誤信息 (在IE下同description)
        * name: 錯誤類型.
        * number: 錯誤代碼 (僅IE可用).
        * stack: 像Java中的Stack Trace一樣的錯誤堆棧信息 (僅Mozilla可用).


    在IE里面沒有lineNumber. 但可用下面的方法找出:

    http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&ID=29948&pos=6&page=1

     1 <script type="text/javascript">
     2 window.onerror=testError;
     3 function testError(){
     4  arglen=arguments.length;
     5  var errorMsg="參數個數:"+arglen+"";
     6  for(var i=0;i<arglen;i++){
     7   errorMsg+="\n參數"+(i+1)+""+arguments[i];
     8  }
     9  alert(errorMsg);
    10  window.onerror=null;
    11  return true;
    12 }
    13  
    14 function test(){
    15  error
    16 }
    17 test()
    18 </script>

    posted @ 2008-09-26 14:26 天豬 閱讀(425) | 評論 (0)編輯 收藏

    理清幾個RIA的概念及技術的選擇 (AIR,WPF,JAVA,FLEX,SLIVERLIGHT)

    轉帖自:http://blog.csdn.net/david_lv/archive/2008/03/05/2149377.aspx

    昨天去參加adobe AIR發布會

    首先申明:我不是adobe雇傭的槍手,我也從不認識adobe的人。我只是一名被C/S和B/S長期困擾希望尋找一套解決方案的人。

    昨天去參加了adobe AIR 發布會

    adobe是業界著名的客戶端展現工具和展現設計工具 提供商。

    展現工具:PDF、FLASH。展現設計工具:photoshop、Dreamwaver、FLASH。

    很多人都疑問AIR有什么用。昨天在會場也有同學提出了這個問題。既然有了AJAX 純的JS的客戶端表現組件包,如最近剛獲得金牛獎的ZK組件包,那為何要有AIR?

    我給大家解釋解釋。大家都能看到現在的趨勢:互聯網軟件在向客戶端融合,客戶端在向互聯網融合。

    互聯網企業發源于WEB世界,那么它要延伸互聯網,必須要基于現在自己的優勢和根。JS技術,這種根植于網絡世界的技術就是最理想的選擇。使用慣了WEB應用軟件的用戶,對于本地安裝一個軟件,本地軟件那樣的操作習慣就感到很奇怪。

    而對于習慣了使用本地軟件的用戶,現在開始有了互聯網跨出局域網的業務需求了,怎么辦?一種辦法當然是給他們另外開發一套B/S企業管理軟件,但他們怎么使用都不順手。

    于是AIR產生。讓他們能滿足互聯網處理,又能像本地軟件一樣操作。

    又有客官問了,聽過微軟也推出了一種客戶端跨互聯網處理的技術,叫WPF和WCF。微軟是客戶端的霸主,而且微軟的 開發工具也是一流的,adobe既不熟悉開發工具這行當,也沒有客戶端優勢,微軟在OS層面做點手腳,就像當年給netscape下點藥做點限制一 樣,AIR就沒前途了。

    但是,但是。這個世界總有但是。

    要知道,做企業管理軟件應用,很重要的就是數據安全。要把自己的數據和業務處理放到公網上,就有擔憂。但是企業發展 必須跨互聯網,有需求啊。那怎么辦?用微軟的?太不安全了。于是挑選了JAVA。但JAVA一直雄霸于服務器端,客戶端JAVA也沒有經驗啊。從早期的 Applet,到Swing,都以失敗告終。不能讓JAVA的服務器端配合WPF的客戶端吧?于是AIR出場了。

    adobe也很聰明,知道微軟這個長年想擴展到互聯網卻屢屢受挫的困獸,必然拼了老命也要推自己的WPF和WCF技術,這是微軟未來的命啊。想在這個霸主的肩膀上吃肉,是比登天難。于是祭出微軟最害怕的一招:開源、免費、基于開放技術標準、跨平臺。

    adobe不擅長開發工具的開發,那就不開發。況且這個世界上除了微軟世界的visual studio工具外,微軟的對立陣營就有最開放的eclipse。eclipse已經不僅僅是一個JAVA的開發IDE,現在Ruby、PHP、C++、 Python都在它上面有插件。于是adobe也把自己插在上面。跟著程序員大潮走,讓程序員使用自己最熟悉的IDE開發AIR。

    adobe一直擅長客戶端表現,所以adobe也沒有必要提供一個從服務器到客戶端一整套技術方案。說白了,AIR 就是一個和AJAX組件包一個層次的解決方案。主要用于客戶端表現。這點非常重要。許多同學沒有看清這一點,和DELPHI比,和JAVA比,和.net 比。其實AIR就專注客戶端表現。你的業務層完全可以用PHP、JAVA、C#來寫。再說了,AIR技術,內在其實就是HTML+JAVAScript, 只不過改進了一些,換了個名字,叫MXML和ActionScript。微軟的WPF技術,也是這兩個技術組成。大家都是一路子。

    PDF抓住了PC時代,FLASH抓住了瀏覽器時代,AIR是要抓住瀏覽器和PC融合的時代。這也是adobe的命 根,所以兩家公司都拼了命。微軟有其強大的現實客戶和研究開發中心和營銷手段,adobe則采用了最開放最聯盟來對抗,讓微軟一家公司之力來對抗全球開放 的程序員。

    WPF僅限于微軟平臺,雖然sliverlight號稱以后也要垮MAC和LINUX平臺。但我說的比較是AIR和WPF,而非FLEX和Sliverlight這兩種技術。

    我對FLEX和Sliverlight這兩種技術一直心存懷疑。他們到底是給什么用戶用的呢?習慣于瀏覽器的用戶?人家有AJAX組件包啊,優秀開源的N多,商業的也N多。習慣于本地運行軟件的用戶?人家有AIR和WPF這兩種技術啊。

    FLEX和Sliverlight這兩種技術產生,我來解釋一下我自己的觀點。

    adobe的AIR還沒有煉成。FLASH是adobe現在的優勢。要想走到目的地,FLASH必須是自己的跳板,于是FLEX必須作為過渡。

    而微軟呢?VISTA本來就是微軟最寄予希望的操作系統,原生的.net framework 3.0,而且全部用.net重寫,一流的面向service的操作系統,圓了當年微軟COM之夢。而且.net framework 3.0最主要的技術WPF、WCF,還有一個夫死胎中的WF,其實都是很有未來前瞻的技術,但由于技術難度太大,當然也由于太多人看透了微軟在互聯網戰略 的陌生和遲疑和舊有EXE技術思想,所以都跑到了純正的互聯網公司,給VISTA形成了難產。微軟希望能無縫且毫無體驗差異的整合互聯網和本地。但是這個 過程太漫長了。眼看著adobe利用FLASH做跳板,以占領自己未來想占領的位置,自己能不能到達目的地還不好說,于是在急匆匆中推出了 sliverlight。其實微軟本來沒有sliverlight研究計劃,希望借助VISTA一舉掀開未來大幕,但VISTA不爭氣,沒掀好,于是必須 應急。

    所以,奉勸開發慣了網站的程序員,繼續拿起你們的AJAX,因為你們不理解人們為什么要用AIR。

    對于開發慣了EXE的程序員,繼續使用AIR或WPF來開發你們的下一代產品,別想著用FLEX。習慣用微軟技術的就用WPF,習慣用非微軟技術的,就選擇AIR。就這么簡單。

    我給大家列了一個對比列表,大家可以理解這個新技術和過去技術的相似和關聯。

    AIR runtime=.net framework=JVM

    AIR=WPF=JAVA Application

    FLEX=Sliverlight=JAVA Applet

    至于Google Gears,是互聯網向桌面融合的產物,而我們今天討論的是桌面向互聯網融合。雖然Google Gears、JAVA JSF、Adobe AIR/FLEX、微軟WPF/Sliverlight都是RIA的解決方案。但都是各自從各自的優勢出發發展的技術方案

    最后結尾總結關鍵幾句:

    1 AIR是給習慣開發EXE程序員準備的非微軟技術的互聯網解決方案。習慣微軟技術的請離開,習慣網站的請離開

    2 AIR工作在表現層。AIR只是一個客戶端表現,和AJAX是一樣的。都是HTML+JAVASCIRPT。不要奢望它能做各種業務處理和運算。你的業務 可以包裝成webservice,也可以是PHP或JSP或asp.net頁面,調用方式可以是webservice,可以是httpservice,可 以是remoting。這樣你的業務層就可以和表現層AIR交流數據了

    3 AIR IDE只是HTML+AVACRIPT設計和調試工具,所以你也別奢望AIR IDE能象JAVA和C#的IDE環境那樣強大。你過去怎么設計和調試HTML+JAVASCRIPT,那么你現在仍然保持那種心態。

     4 AIR不是FLASH。他們是兩種不同的應用目的和技術發展方向。不要用FLASH開發企業管理軟件,也不要用AIR開發多媒體。雖然能,但不擅長(就如 你拿C來開發WEB)。AIR不需要運行在瀏覽器中,不需要使用FLASH容器。AIR有自己的容器和運行環境。AIR和你的EXE是一樣的安裝和執行。

    5AIR和WPF都處于不成熟期,可以作項目,但不要把寶押在他們上面做下一代產品線(預計下下版應該可以進行企業 下一代產品線開發,一般都是軟件3個版本后才強壯穩定起來,按照競爭的激烈程度,這個第三個正式版本時間會在明年的上半年)。不過你也不要等待他們成熟后 再做再研究,這樣的等待就如同2001年等待JAVA成熟一樣。現在JAVA是成熟了,但是你還有機會么?

    6不要懷疑AIR和WPF是不是未來。業界早有共識,這就是未來。不要在GOOGLE WEBOS和客戶端OS之間選擇來選擇去,如果你是網站開發人員,安心研究你的GOOGLE RIA技術。不要懷疑是跟微軟還是跟adobe。如果你一直在微軟的技術圈子中行走,那么你安心用你的WPF好了,都是未來。

    7有許多人問起來了SEO在AIR和FLEX上的缺陷。說slivelight支持SEO和搜索友好。我想說的一句是:開發企業管理軟件,怕的就是搜索,怕的就是企業數據被搜索引擎搜索到。不能搜索到才好呢

    8AIR為過去的EXE程序員提供了自動版本檢測和自動升級的API,這是讓C/S程序員非常興奮的一件事。回想當 年,客戶端版本不一致,出了不少怪異的事情。AIR也提供了離線后暫時保存數據到本地內嵌在AIR runtime中的sqlite(操作和平常SQL一樣),繼續操作軟件,連線后同步數據。OK

    9 你如果沒有開發過MVC架構,沒有用過COM多層開發,那么你不會明白業務層和表現層的分工和通訊的。你會一直想弄清楚怎么在AIR中寫SQL語句或 JAVA語句。你也一直會想在servlet中寫JAVASCRIPT和HTML代碼。你還處在漿糊代碼階段,建議給自己的代碼技術升升級。

    想問我為什么關注AIR嗎?

    因為我一直戰斗在行業管理軟件的開發上。我對于開發一套C/S,一套B/S,這樣極耗費開發成本開發時間和維護成本 的開發方式煩透了,要讓兩者操作習慣和功能都保持一致,難。如果有了BUG,兩個產品是兩個開發團隊,BUG都出在不同的地方,分別修改。讓一個公司維護 兩套人馬兩個產品,在中國大部分都是小軟件作坊的現狀下,哪個都做不好。不如做一個既是C/S又是B/S的軟件。

    那是多么美好的事情啊。

    posted @ 2008-08-25 10:20 天豬 閱讀(2120) | 評論 (2)編輯 收藏

    TEST

    TEST.

    COOL SU BC
    JT SU MM
    XZ SU XZ
    NE SU SX

    posted @ 2008-07-24 09:11 天豬 閱讀(235) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 免费人成视频在线播放| 精品无码AV无码免费专区| 亚洲中久无码永久在线观看同| 一级毛片在线完整免费观看| 久久精品国产69国产精品亚洲| 久久久久高潮毛片免费全部播放| 亚洲色偷偷偷综合网| 久久久久亚洲av毛片大| 成年人免费的视频| 国产免费内射又粗又爽密桃视频| 亚洲欧洲日产专区| 亚洲国产精品成人久久蜜臀| 99久在线国内在线播放免费观看| 精品亚洲视频在线| 亚洲日本在线看片| 国内精品久久久久久久亚洲| 成年男女男精品免费视频网站| 黄色短视频免费看| 亚洲乱码日产精品一二三| 亚洲AV日韩AV天堂久久 | 香蕉免费看一区二区三区| 亚洲伊人精品综合在合线| 亚洲午夜激情视频| 日韩中文字幕在线免费观看| 一级毛片免费视频| 一个人看的www免费在线视频| 久久久久se色偷偷亚洲精品av| 国产亚洲AV夜间福利香蕉149| 在线免费观看视频你懂的| 久久ww精品w免费人成| fc2免费人成在线| 亚洲国产精品久久久久秋霞小| 亚洲不卡中文字幕无码| 亚洲成AV人网址| 国产精品成人四虎免费视频| 亚洲高清中文字幕免费| 免费无码成人AV在线播放不卡| 中文字幕不卡免费视频| 狠狠热精品免费观看| 亚洲av无码一区二区三区人妖| 亚洲乱码日产精品BD在线观看|