Time of Update: 2014-03-09
寫了近半個月的backbone.js代碼,從一開始的todo到現在做仿的網頁聊天,其中最大的困惑就在於如何處理比較複雜的Model,其內嵌了一個或者多個Collections。 假設我們有一個Person的Model,一個Person會有多個工作,那麼我們將jobs這個屬性設定為一個Collection: 初始化代碼如下: 複製代碼var Job = Backbone.Model.extend({ }); var Jobs = Backbone.
Time of Update: 2014-03-09
什麼是json?一種輕量級的資料交換格式,具有良好的可讀和便於快速編寫的特性。json和xml的異同處1.JSON和XML的資料可讀性基本相同2.JSON和XML同樣擁有豐富的解析手段3.JSON相對於XML來講,資料的體積小4.JSON與JavaScript的互動更加方便5.JSON對資料的描述性比XML較差6.JSON的速度要遠遠快於XMLJSON解析類可以分為以下幾個類:
Time of Update: 2014-03-09
Extjs表單驗證小結//放在onReady的function(){}中Ext.QuickTips.init(); //為組件提供提示資訊功能,form的主要提示資訊就是用戶端驗證的錯誤資訊。Ext.form.Field.prototype.msgTarget='side';
Time of Update: 2014-03-09
1、原始寫法 <div onclick="alert('you clicked me just now);'">click me</div>在剛開始學習前端的時候,我們不免這麼將事件綁定寫在html中,後來我們想將html和js指令碼進行分離便這麼寫 <div id="test">click me</div><script
Time of Update: 2014-03-09
我們項目現在需要用到兩個js庫.一個是jQuery庫,還有一個是我們自己開發的輕量級的gys.js庫. 而gys庫對外提供的介面也是$符號.和jQuery庫是一樣的,這個時候,兩個庫就會發生衝突了,我們就需要讓jQuery的$讓出來. 可以這樣解決. 一:jQuery.js庫的引用在gys.js前面.直接使用jQuery(),沒有必要使用jQuery.noConflict() 1 <head runat="server">2
Time of Update: 2014-03-09
整理一下在近日所學到一些比較雜的東西。1. 這個姑且叫做分組判斷執行(具體我也不知道怎麼叫準確)。 (a || b || c || d || function(){})()第一次見到這樣的代碼,確實有點頭疼,不過很好,得一些朋友的解答。該代碼的具體含義為:第一個()裡面會有判斷,如果a為 true 的話,那麼此句代碼直接就執行為a(),如果a為false,那麼就判斷b是否為true,如果b為true,則執行為b().如果前面的都不為true,那就是執行最後的預設方法。2.
Time of Update: 2014-03-09
1.用for-in遍曆對象時(for-in最好不要用來遍曆數組,遍曆數組一般用for-each)最好要過濾掉對象的原型鏈的幹擾if(Object.prototype.clone === 'undefined'){Object.prototype.clone = function(){}}for(var key in
Time of Update: 2014-03-09
用ExtJs做前端架構,一般而言,主架構基本都會使用Border布局。 大概布局就像這個樣子。 頂部左側一般顯示系統名稱,右側使用者姓名。 左側是一個手風琴(Accordion),或者其他的,比如Tree,用以實現導航或功能菜單。 中間就是主內容了,Tab選項卡的形式,以輕鬆支援多功能,同時可輕鬆切換,若是整個介面只支援最多一個頁面的話,對於一個後台系統來說,確實不太方便。 當然,也可以多加幾個模組,如頂部加一個使用者資訊
Time of Update: 2014-03-09
JavaScript 架構提供了如此多的功能,以至於一不小心就會掉進坑裡去。 對工具庫依賴得越多,在修改或維護時一個小小的改的很可能就會影響到其他的功能(俗稱 處處是地雷,走路需謹慎),特別是維護多年前的遺留代碼時。 我經常看到的一個錯誤是關於 jQuery的 trigger, trigger允許開發人員手動觸發某些事件。 這個功能真的非常強大與好用,但是請遵守約定,不要觸發JS中那些原生的事件名稱!注:我知道,其他JS架構也提供這種功能 ——
Time of Update: 2014-03-09
一、BOM 什麼是BOM? 答:BOM是browser object model的縮寫,簡稱瀏覽器物件模型。 還是不懂? 答:BOM提供了獨立於瀏覽器顯示內容而與瀏覽器視窗進行互動的對象。 個人理解是,我們知道瀏覽器顯示的Document,javascrip
Time of Update: 2014-03-09
1. 估計很多人都會用到jQuery中的each方法。那就來看一看jQuery都幹了些什麼。找到jquery中的each源碼:each: function( object, callback, args ) {var name, i = 0,length = object.length,isObj = length === undefined || jQuery.isFunction( object );if ( args ) {if ( isObj ) {for ( name in
Time of Update: 2014-03-09
前言: 我屬於TDD的擁護者,之前寫後端代,都喜歡把一些重要的邏輯代碼抽離處理,增加Unit Test。可是最近在接觸前端Unit
Time of Update: 2014-03-09
1. 如果JSON對象中有屬性是包含雙引號的,比如{"description": "25""}如果轉換成字串形式,將自動加上反斜線,變為"25\"", 然後傳遞給REST API,儲存到MongoDB中。此時如果使用MongoDB的shell顯示該資料,為"25\"", 正確。2. 但是如果用C++ driver讀取這個值是,則得到"25"", 因此如果將它直接返回到瀏覽器端,用jQuery.parseJSON()來解析就會報錯。C++段序列化成字串的時候需要判斷一下,將"替換成\".void
Time of Update: 2014-03-09
前言 函數和範圍啥的我們前面已經瞭解了,現在就要學習閉包了,這是一個挺晦澀的知識點,初學者可能會感覺不好理解,但是高手都不不以為然了,高手就給我提點意見吧,我和新手一起來學習什麼是閉包。 例子 先不說定義,先看一個題,看看大家能得出正確的結果不, 複製代碼function test(){ var arr = []; for(var i = 0;i<10;i++){
Time of Update: 2014-03-09
本案例中記載了Extjs中一棵樹的形成以及各種案例整合,並詳解介紹了TreePanel、TreeNode和AsyncTreeNode這三個主要對象。純屬個人業餘時間玩玩的,整理出來,方便以後查看。JSP頁面:地區管理<script type="text/javascript" src="${ctxStatic}/ext-3.4.0/adapter/ext/ext-base.js"></script><script type="text/javascript"
Time of Update: 2014-03-09
最近在複習JQuery,發現自己還沒寫過一個外掛程式。在寫外掛程式之前,覺得開發外掛程式是高端上檔次的事,跟我這種小菜不搭邊啊。不過在網上查了相關資料,發現開發外掛程式其實是很簡單的。 在這裡我將說明JQuery外掛程式常用的寫法,以及這些外掛程式的常用情境。 希望對大家有所協助。 先準備了自己以前寫過的一個火車票列表的頁面,點擊"設定樣式與事件"出現以下效果。
Time of Update: 2014-03-09
以前寫過一篇關於javascript閉包的隨筆,javascript閉包,但是寫的不夠詳細,也沒有體現出閉包的強大之處。故作此篇。 眾所周知,javascript沒有塊級範圍,只有函數範圍。那就意味著定義在函數中的參數和變數在函數外部是不可見的,而在一個函數內部任何位置定義的變數,在該函數內部任何地方都可見。這帶來的好處是內建函式可以訪問定義它們的外部函數的參數和變數。 首先,我們來構造一個簡單的對象 複製代碼 1 var testObj =
Time of Update: 2014-03-09
1、Ext.MessageBox.alert() 調用格式: alert( String title, String msg, [Function fn], [Object scope] ) 參數說明: title:提示框的標題。 msg:顯示的訊息內容。 [Function fn]:(可選)回呼函數。 [Object scope]:(可選)回呼函數的範圍。 ExtJS MessageBox
Time of Update: 2014-03-09
//加入收藏function addBookmark(title) { var url=parent.location.href; if (window.sidebar) { window.sidebar.addPanel(title, url,""); } else if( document.all ) { window.external.AddFavorite( url, title); } else if( window.opera && window.print ) {
Time of Update: 2014-03-09
arguments的主要用途是儲存參數,但是他還有callee屬性. 一:callee指向arguments對象的函數. 樣本一: 1 function calture(num) {//階乘計算2 if (num <= 1) return 1;3 else {4