20151118小问题
1.模板引擎
百度百科:模板引擎(這里特指用于Web開發(fā)的模板引擎)是為了使 用戶界面與業(yè)務數(shù)據(jù)(內(nèi)容)分享而產(chǎn)生的,它或以生成特定格式的文檔,用于網(wǎng)站的模板引擎就會產(chǎn)生一個標準的HTML文檔.
目的:生成一個標準的HTML文檔.
概念:模板引擎不屬于特定技術領域,它是跨領域跨平臺的概念.在Asp下有模板引擎,在PHP下也有模板引擎,在c#下也有模板引擎,基礎javascript,winform開發(fā)都會用到模板引擎技術.
原理:模板引擎的實現(xiàn)方式有很多,最簡單的是"轉換型"模板引擎,這類模板引擎只是將指定模板內(nèi)容(字符串)中特定標記(子字符串)替換一下便生成了最終需要的業(yè)務數(shù)據(jù)(比如網(wǎng)頁).
轉換型模板引擎實現(xiàn)簡單,但其效率低下,無法滿足高負載的應用需求(比如有少量訪問珠網(wǎng)站),因此還出現(xiàn)了"解釋型"模板引擎和"編譯型"模板引擎等.
模板引擎可以讓(網(wǎng)站)程序實現(xiàn)界面與數(shù)據(jù)分享,這就大大提升了開發(fā)效率,良好孤設計也使得代碼重用變得更加容易.
我們司空見慣的模板安裝卸載等概念,基本上都和模板引擎有關千絲萬縷的聯(lián)系.模板不只是可以讓你實現(xiàn)代碼分離(業(yè)務邏輯代碼和用戶界面代碼),也可以實現(xiàn)數(shù)據(jù)分離(動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)),還可以實現(xiàn)代碼單元共享(代碼重用),基至是多語言,動態(tài)頁面和靜態(tài)頁面自動均衡(SDE)等等與用戶界面可能沒有關系的功能.
相關推薦:
Smarty:Smarty的特點是將模板編譯成PHP腳本,然后執(zhí)行這些腳本。很快,非常靈活。是一個模板類,一般也簡稱為模板。Smarty里面有專門的模板引擎。模板的主要功能就是邏輯與顯示的分離,也就是PHP和HTML的分離。
Heyes Template Class:一個非常容易使用,但功能強大并且快速的模板引擎,它幫助你把頁面布局和設計從代碼中分離。
FastTemplate:一個簡單的變量插值模板類,它分析你的模板,把變量的值從HTML代碼中分離處理。
ShellPage:一個簡單易用的類,可以讓你的整個網(wǎng)站布局基于模板文件,修改模板就能改變整個站點。
STP Simple Template Parser:一個簡單、輕量級并且易于使用的模板分析類。它可以從多個模板中組裝一個頁面,把結果頁面輸出到瀏覽器或者文件系統(tǒng)。
OO Template Class:一個你可以用在自己程序中的面向對象的模板類。
SimpleTemplate:一個可以創(chuàng)建和結構化網(wǎng)站的模板引擎。它可以解析和編譯模板。
?
2.Json
百度百科:JSON(javascript object notation)是一種輕量級的數(shù)據(jù)交換格式.它基于ECMAScript的一個子集.json采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C,C++,C#,Java,JavaScript,Perl,Python等).這些特性使json成為理想的數(shù)據(jù)交換語言.易于人閱讀和編寫,同時民易于機器解析和生成(一般用于提升網(wǎng)絡傳輸速率).
json語法是javascript對象表示語法的子集,數(shù)據(jù)在鍵值對中,數(shù)據(jù)由逗號分隔,花括號保存對象,方括號保存數(shù)組.
json數(shù)據(jù)的書寫格式是:名稱/值對(也只可以說成鍵值對)
名/值對組合中的名稱寫在前面(在雙引號中),值對寫在后面(同樣在雙引號中),中間用冒號隔開,也就是說不管名稱還是值都要用雙引號引起來,而且只能是雙引號,不能是單引號.
json值可以是任何類型,包括number,string,boolen,array,object,null,undefined
有兩種格式,花括號{}或方括號[].
用戶在網(wǎng)頁上書寫的內(nèi)容一般是以json字符串的形式傳到后臺的,后臺拿到這個字符串不能直接使用,需要轉化為對象形式才能使用,可以用JSON.parse()把json字符串轉換成相對應的json對象.
為了更直觀的了解json,可以看下面的代碼
var json1='{"user":"honghong","age":38,"job":"CEO"}';var json2='["feng",20,"Programmer"]';var parseJSON=JSON.parse(json1,function(key,value){if(key==="user") value="huahua";console.log(key);//user age jobreturn value;});console.log(parseJSON);//Object{user:"huahua",age:38,job:"CEO"}var parseArr=JSON.parse(json2);console.log(json1);//{user:"huahua",age:38,job:"CEO"}console.log(typeof json1);//stringconsole.log(parseJSON.user);//huahuaconsole.log(json2);//["feng",20,"Programmer"]console.log(typeof json2);轉載于:https://www.cnblogs.com/sunshinegirl-7/p/4976467.html
總結
以上是生活随笔為你收集整理的20151118小问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十六进制,输出的时候怎样控制所输出字母的
- 下一篇: 拉卡拉替你还审核要多久?审核容易过吗?