资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Coldfusion初级培训软件编程培训资料培训目标lColdfusion简介l熟悉Coldfusion常用技巧l了解使用Coldfusion注意事项l熟悉JS在IE及Firefox常见兼容问题COLDFUSION简介ColdFusion(直译:冷聚变)出生于1995年夏天(7月13),创始人 JJ Allaire、Jeremy Allaire,最初设计用途是用来帮助撰写HTML的程序设 计师们能够设计出与数据库互动的网页应用程序。它既是一种应用服务器 也是一种编程语言,主要用于商业(需购买)应用服务器。 ColdFusion语言(CFML-ColdFusion Markup Language)是模仿 HTML、功能强大的编程语言,拥有图表功能、全文检索引擎、 Web Services 、Flash Remoting等模块定制功能。它具有以下一些特点: 1. 易学易用。 2. 开发效率高。 3. 扩展性强,可自定义标签。 4. 可移植。 5. 基于J2EE核心。Coldfusion常用技巧- IsValid1,使用IsValid函数 语法: IsValid(type, value) IsValid(“range”, value, min, max) IsValid(“regex” or “regular_expression”, value, pattern)例如: a.If (NOT Isvalid(email,form.email)/ 邮件无效; b.If (Isvalid(variableName ),url.abc)#url.abc# = 123;else/URL参数有误 c.If (!IsValid(range,Discount,0,100)/折扣无效 d.IsValid(“regex“, “abc123“, “a-z0,30-9*“)/正则表达式Coldfusion常用技巧- IsValidIsValid函数参数:type any: 等同于IsSimpleValue(),判断是否为简单变量array: 等同于IsArray (),判断是否为数组 binary: 等同于IsBinary (),判断是否为二进制数据.boolean: 等同于IsBoolean (). creditcard: 是否为一个 13-16位的信用卡 date or time: 等同于IsDate()email: 判断是否为email格式. eurodate: 是否为日期格式(包含US时间格式在内) float or numeric: 等同于IsNumeric ().guid: 是否为一个美国身份证号码. integer: 是否为整型 query: 同等于IsQuery (). range: 是否在 min - max 范围内 (IsValid(range,30,12,66)yes) regex or regular_expression: 正则表达式判断.ssn or social_security_number: 是否为一个美国安 全号码.string: 是否为一个字符串(由字母和数字组成) struct: 等同于IsStruct(). telephone: 是否为一个美国标准电话号码.URL: 是否为一个URL地址(http,https, ftp, file, mailto), UUID: 是否为一个UUID. USdate: 是否为美国时间格式(mm/dd/yy).zipcode: 是否为5位或者9位的邮编. variableName: 是否为一个合法的变量名.Coldfusion常用技巧-空白处理2,页面代码空白处理Coldfusion产生的缩进CML代码的空白,可以采取以下方法进行处理 a.Coldfusion Administrator中Setting中,启用”Suppress Whitespace”,可以智能压缩常规空白b.只显示output内容 c,无条件压缩空白,包括output内容,例如:d,也可以压缩空白,另外 用于保留空白,例如:空白行.e,禁止方法中输出内容,如Coldfusion常用技巧-CFQuery3,CFQuery的一些技巧 a.动态访问cfquery的数据, queryNamecolumnnamerow,如 qRateqCurrency.FieldName1 b,cfquery内置方法 voidqueryName.first() 跳到第一个记录 void queryName.last() 跳到最后一个记录 boolean queryName.isFirst() 是否为第一条记录 boolean queryName.isLast() 是否为最后一条记录 boolean queryName.next() 下一条记录 boolean queryName.previous() 上一记录 int queryName.findColumn(String name) 通过列名返回列ID(由0开始) void sort(int columnID, boolean ascending) 排序 stringgetColumnTypeName(int columnID) 返回列类型 arraygetMetaData(queryname),返回cfquery的元数据,可以得到真实的字段名列表,不按字母排序,例如:queryname1.name得到第一列字段名.Coldfusion常用技巧-CFQueryc, 指定cfquery的result属性,例如,可以了解 到cfquery详细执行情况, Cached是否使用了缓存 Columnlist影响到的列 Executiontime执行时间 Recordcount返回记录数 SQL所使用的SQL语句 d,Cfscript快速读取cfquerywhile (quser.next() writeoutput(quser.next.UserEmail); Coldfusion常用技巧-缓存4,使用缓存提高性能a. 使用”查询高速缓存”,例如:实现功能: 当第一次执行该sql以后,将结果保留在内存中15分钟,下次访问该页面的 时候直接从内存中读取数据,不再跟数据库交互,15分钟以后重新到数据库取得数据并 存放到内存.也可以使用下面的语句马上清除缓存.对于不经常更新的数据,使用这个特性可以大大提高程序性能. 注意事项:*使用清除缓存功能的时候要保持两个cfquery中的代码及相关属性完全一致!*设置最大缓存数量限制,以免占用大量系统RAM资源(Coldfusion administrator- CachingMaximum number of cached templates),比如设置为20.*当cfquery返回记录数大于100时,添加BlockFactor=“100”,以提高整体查询性能 如:Coldfusion常用技巧-缓存b,使用客户端”页面缓存”,例如:在页面顶部添加以上代码,浏览器将在3小时内自由的使用页面的本地副本,如果需要 缓存所有页面,在Application.cfm添加该代码即可. c,使用服务器端”页面缓存”,例如:这句话告诉Coldfusion,本页面只需要每隔30分钟实际执行一次,当浏览器第一次发 送请求时,它将该页面作为一个单独的,静态的文件保存在服务器驱动器上,下次访问 时就直接发回文件的静态版本. 注意事项: *使用服务器缓存技术以后,服务器不再为每一个用户生成独立的页面,并且共享 Client、Cookie、Session变量,涉及使用相关变量的页面建议使用客户端缓存. *带URL参数的页面将将作为不同页面独立缓存。 *使用手工清除缓存.Coldfusion常用技巧-加密5. 数据安全(加密)通常需要对用户密码,银行相关帐号,或者业务机密等信息进行加密,以 防止泄漏,coldfusion也提供了一对加解密函数,实现数据的加密.如下 所示:或者注意:不能使用DECRYPT(encrypted, key)和DECRYPT(encrypted, key) 来处理中文。使用Coldfusion注意事项1,关于SQL注释,不要在使用 update User set - Phone = 这样,偶尔会出现”Invalid parameter binding(s)”错误. 可以使用进行注释 2,一定要在 #form.searhdate# 3,避免使用evaluate(),除非没有其他办法来写代码了 (几乎总是有其他的办法来写代 码)。 4,使用 struct.key或者structkey,不要使用structFind(struct, key)。因为速度 更快,可读性更好。 使用Coldfusion注意事项5,尽量不使用iif(),用 cfif/cfelse取代iif(),效率更高,可读性也更好。 6,Coldfusion中数据操作比字符串操作效率更高,但如果变量本是一个List,不要把 List 转变成一个array 然后循环- 因为总的速度不会快多少. 7,针对大于64k的数据存储,需要在Coldfusion Administrator中数据源选项中进行 设置,在数据源编辑窗口中,点击“Show Advanced Settings”,设置”Long Text Buffer(chr)”或者Blob Buffer(bytes)”值,如: 1024000。 8, Coldfusion中默认开启了脚本保护功能,智能防止恶意代码,进入数据库之前会自 动将、等字符串进行替换,如果需要在某个目录下的代 码中禁用脚本保护,比如将一些HTML及JS代码存入到数据库,可以参考以下代码:使用Coldfusion注意事项9, Coldfusion会自动缓存Webservice,如果对Webservice进行了更新,需要清除Webservice缓 存方能起效! 清除方法参考以下代码:JS在IE及Firefox常见兼容问题1,取得对象 IE: document.formName.item(“itemName“) FF: document.formName.elements“elementName“ IE: document.forms(“formName”) document.getElementsByName(“inputName”)(1) FF: document.forms“formName”document.getElementsByName(“inputName”)1 IE: document.对象ID FF: document.getElementById(对象ID)建议: *尽量使用对象ID属性,比如 *总是使用document.getElementById(对象ID)取得对象,包括Iframe*使用 作为下标运算 JS在IE及Firefox常见兼容问题2,捕捉window.event事件 IE中 可以使用window.event FF中 event 只能在事件发生的现场使用,可以改写成 事件=函数(event); function somemethod(evt) evt = evt ? evt : (window.event ? window.event : null); alert(evt); 例如: 取得事件的坐标使用event.clientX/clientY,因为Firefox不支付event.x/y 3,showModalDialog子窗口 IE中可以用showModalDialog一个子窗口,并获得返回值. FF中没有showModalDialog,但可以用window.open来实现. 例如: 在Main.cf
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号