json 格式与PHP json 格式
json 格式与PHP json 格式之间是怎样调用的。结构是怎样的呢?以前转过一篇关于json 格式的文章。今天再重新整理个json格式的例子,以及php json格式与js json之间的调用。这个函数,第一个alert(json[1].username); 会提示 “李四”。 json 变量是一个数组对象。所以要采用 obj.username 这样的格式来调用。
继续阅读 »json 格式与PHP json 格式之间是怎样调用的。结构是怎样的呢?以前转过一篇关于json 格式的文章。今天再重新整理个json格式的例子,以及php json格式与js json之间的调用。这个函数,第一个alert(json[1].username); 会提示 “李四”。 json 变量是一个数组对象。所以要采用 obj.username 这样的格式来调用。
继续阅读 »语言层次方面
循环
循环是很常用的一个控制结构,大部分东西要依靠它来完成,在JavaScript中,我们可以使用for(;;),while(),for(in)三 种循环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。for(;;)和while循环的性能应该说基 本(平时使用时)等价。
而事实上,如何使用这两个循环,则有很大讲究。我在测试中有些很有意思的情况,见附录。最后得出的结论是:
如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或—操作符。
如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。
局部变量和全局变量
局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。
不使用Eval
使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。这时候使用JavaScript所支持的闭包可以实现函数模版(关于闭包的内容请参考函数式编程的有关内容)
减少对象查找
因为JavaScript的解释性,所以a.b.c.d.e,需要进行至少4次查询操作,先检查a再检查a中的b,再检查b中的c,如此往下。所以如果这样的表达式重复出现,只要可能,应该尽量少出现这样的表达式,可以利用局部变量,把它放入一个临时的地方进行查询。
这一点可以和循环结合起来,因为我们常常要根据字符串、数组的长度进行循环,而通常这个长度是不变的,比如每次查询a.length,就要额外进行一个操作,而预先把var len=a.length,则就少了一次查询。
字符串连接
如果是追加字符串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr。
如果要连接多个字符串,应该少使用+=,如
s+=a;s+=b;s+=c;
应该写成
s+=a + b + c;
而如果是收集字符串,比如多次对同一个字符串进行+=操作的话,最好使用一个缓存。怎么用呢?使用JavaScript数组来收集,最后使用join方法连接起来,如下
以下是引用片段: var buf [...]
前几天,觉得blog的插入代码不够好用。于是,将sina的html编辑器更换为了tinyMCE。并且开发了一个简单的插入代码的功能。。。
下面就是我开发的过程。
首先,我的 tinyMCE版本是 Version: 3.2.7 (2009-09-22) 。下载地址 http://tinymce.moxiecode.com/download.php
tinyMCE插入代码,需要调用 tinyMCE的 tinyMCE.execCommand(‘mceInsertContent’,false,value); 方法。其中参数无需改变,value [...]
并不一定全,有的也可能不准确,比如新出的IE8、Chrome等都没有太多涉及,虽然最近做的一些项目也兼容了IE8、Chrome等,但都没来的及总结进去,后来就忘了…汗。大家一起慢慢完善吧。
javascript部分
1. document.form.item 问题
问题:
代码中存在 document.formName.item("itemName") 这样的语句,不能在FF下运行
解决方法:
改用 document.formName.elements["elementName"]
2. 集合类对象问题
问题:
代码中许多集合类对象取用时使用(),IE能接受,FF不能
解决方法:
改用 [] 作为下标运算,例:
document.getElementsByName("inputName")(1) 改为 [...]
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours(); //获取当前小时数(0-23) myDate.getMinutes(); //获取当前分钟数(0-59) myDate.getSeconds(); //获取当前秒数(0-59) myDate.getMilliseconds(); //获取当前毫秒数(0-999) myDate.toLocaleDateString(); //获取当前日期 var [...]
继续阅读 »Json格式和数据类型 介绍前几天,我才知道有一种简化的数据交换格式,叫做yaml。我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的 string(字符串)或数字(numbers),比如“北京”这个单独的词。
继续阅读 »一、简介
1.1、概述随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。jQuery是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 JavaScript™ 以及Ajax 编程。有人使用这样的一比喻来比较prototype和jQuery:prototype就像Java,而jQuery就像ruby. 它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。
它具有如下一些特点:1、代码简练、语义易懂、学习快速、文档丰富。2、jQuery是一个轻量级的脚本,其代码非常小巧,最新版的JavaScript包只有20K左右。3、jQuery支持CSS1-CSS3,以及基本的xPath。4、jQuery是跨浏览器的,它支持的浏览器包括IE [...]