欢迎您浏览"http://bbs.W3club.cn" WEB前端技术交流,PHP论坛。 广州PHP技术交流群:72957563    WEB标准化讨论群:70259671

2009年11月10日 | 分类: JavaScript, jQuery | 标签: , ,

一些简单的代码简化

下面是一个简单示例,它说明了 jQuery 对代码的影响。要执行一些真正简单和常见的任务,比方说为页面的某一区域中的每个链接附加一个单击(click)事件,您可以使用纯 JavaScript 代码和 DOM 脚本来实现,如 清单 1 所示。
清单 1. 没有使用 jQuery 的 DOM 脚本
               
var external_links = document.getElementById(‘external_links’);
var links = external_links.getElementsByTagName(‘a’);
for (var i=0;i < links.length;i++) {
    var link = links.item(i);
    link.onclick = function() {
        return confirm(‘You are going to visit: ‘ + this.href);
    };
}
阅读全文…

2009年11月10日 | 分类: JavaScript | 标签: ,

1、$fx() (仅3.7K)
简介:$fx()是一个轻量级的动画库,一些复杂的动画,可以由多个简单的动画效果进行组合,但是提供的是混淆压缩过的代码,对于研究动画源码的朋友可能特别不爽
API:http://fx.inetcat.com/manuals.php
主页: http://fx.inetcat.com/

阅读全文…

2009年10月29日 | 分类: 天下杂侃, 未分类 | 标签:

1. 引言 2

2. 适用范围 2

3. 标准化的重要性和好处 3

4. PHP编码规范与原则 3

4.1. 代码标记 3

4.2. 注释 3

4.3. 书写规则 4

4.3.1. 缩进 4

4.3.2. 大括号{}、if和switch 4

阅读全文…

2009年10月23日 | 分类: JavaScript | 标签:
event.keycode值大全
最近自己用 CodeIgniter 和 jQeury 来做一个企业站的CMS,在有些地方限制键入的内容,通过javaScript来监听作出限制。以下是keycode值的表
从网上找的event.keycode值大全,方便自己和大家以后查阅:
event.keycode值大全
1     keycode 8 = BackSpace BackSpace
2     keycode 9 = Tab Tab
3     keycode 12 = Clear
4     keycode 13 = Enter
5     keycode 16 = Shift_L
6     keycode 17 = Control_L
7     keycode 18 = Alt_L
8     keycode 19 = Pause
9     keycode 20 = Caps_Lock
10     keycode 27 = Escape Escape
11     keycode 32 = space space
12     keycode 33 = Prior
13     keycode 34 = Next
14     keycode 35 = End
15     keycode 36 = Home
16     keycode 37 = Left
17     keycode 38 = Up
18     keycode 39 = Right
19     keycode 40 = Down
20     keycode 41 = Select
21     keycode 42 = Print
22     keycode 43 = Execute
23     keycode 45 = Insert
24     keycode 46 = Delete
25     keycode 47 = Help
26     keycode 48 = 0 equal braceright
27     keycode 49 = 1 exclam onesuperior
28     keycode 50 = 2 quotedbl twosuperior
29     keycode 51 = 3 section threesuperior
30     keycode 52 = 4 dollar
31     keycode 53 = 5 percent
32     keycode 54 = 6 ampersand
33     keycode 55 = 7 slash braceleft
34     keycode 56 = 8 parenleft bracketleft
35     keycode 57 = 9 parenright bracketright
36     keycode 65 = a A
37     keycode 66 = b B
38     keycode 67 = c C
39     keycode 68 = d D
40     keycode 69 = e E EuroSign
41     keycode 70 = f F
42
43     keycode 71 = g G
44     keycode 72 = h H
45     keycode 73 = i I
46     keycode 74 = j J
47     keycode 75 = k K
48     keycode 76 = l L
49     keycode 77 = m M mu
50     keycode 78 = n N
51     keycode 79 = o O
52     keycode 80 = p P
53     keycode 81 = q Q at
54     keycode 82 = r R
55     keycode 83 = s S
56     keycode 84 = t T
57     keycode 85 = u U
58     keycode 86 = v V
59     keycode 87 = w W
60     keycode 88 = x X
61     keycode 89 = y Y
62     keycode 90 = z Z
63     keycode 96 = KP_0 KP_0
64     keycode 97 = KP_1 KP_1
65     keycode 98 = KP_2 KP_2
66     keycode 99 = KP_3 KP_3
67     keycode 100 = KP_4 KP_4
68     keycode 101 = KP_5 KP_5
69     keycode 102 = KP_6 KP_6
70     keycode 103 = KP_7 KP_7
71     keycode 104 = KP_8 KP_8
72     keycode 105 = KP_9 KP_9
73     keycode 106 = KP_Multiply KP_Multiply
74     keycode 107 = KP_Add KP_Add
75
76     keycode 108 = KP_Separator KP_Separator
77     keycode 109 = KP_Subtract KP_Subtract
78     keycode 110 = KP_Decimal KP_Decimal
79     keycode 111 = KP_Divide KP_Divide
80     keycode 112 = F1
81     keycode 113 = F2
82     keycode 114 = F3
83     keycode 115 = F4
84
85
86     keycode 116 = F5
87     keycode 117 = F6
88     keycode 118 = F7
89     keycode 119 = F8
90     keycode 120 = F9
91     keycode 121 = F10
92     keycode 122 = F11
93     keycode 123 = F12
94     keycode 124 = F13
95     keycode 125 = F14
96     keycode 126 = F15
97     keycode 127 = F16
98     keycode 128 = F17
99     keycode 129 = F18
100     keycode 130 = F19
101     keycode 131 = F20
102     keycode 132 = F21
103     keycode 133 = F22
104     keycode 134 = F23
105     keycode 135 = F24
106     keycode 136 = Num_Lock
107     keycode 137 = Scroll_Lock
108     keycode 187 = acute grave
109     keycode 188 = comma semicolon
110     keycode 189 = minus underscore
111     keycode 190 = period colon
112     keycode 192 = numbersign apostrophe
113     keycode 210 = plusminus hyphen macron
114     keycode 211 =
115     keycode 212 = copyright registered
116     keycode 213 = guillemotleft guillemotright
117     keycode 214 = masculine ordfeminine
118     keycode 215 = ae AE
119     keycode 216 = cent yen
120     keycode 217 = questiondown exclamdown
121     keycode 218 = onequarter onehalf threequarters
122     keycode 220 = less greater bar
123     keycode 221 = plus asterisk asciitilde
124     keycode 227 = multiply division
125
126     keycode 228 = acircumflex Acircumflex
127     keycode 229 = ecircumflex Ecircumflex
128     keycode 230 = icircumflex Icircumflex
129     keycode 231 = ocircumflex Ocircumflex
130     keycode 232 = ucircumflex Ucircumflex
131     keycode 233 = ntilde Ntilde
132     keycode 234 = yacute Yacute
133     keycode 235 = oslash Ooblique
134     keycode 236 = aring Aring
135     keycode 237 = ccedilla Ccedilla
136     keycode 238 = thorn THORN
137     keycode 239 = eth ETH
138     keycode 240 = diaeresis cedilla currency
139     keycode 241 = agrave Agrave atilde Atilde
140     keycode 242 = egrave Egrave
141     keycode 243 = igrave Igrave
142     keycode 244 = ograve Ograve otilde Otilde
143     keycode 245 = ugrave Ugrave
144     keycode 246 = adiaeresis Adiaeresis
145     keycode 247 = ediaeresis Ediaeresis
146     keycode 248 = idiaeresis Idiaeresis
147     keycode 249 = odiaeresis Odiaeresis
148     keycode 250 = udiaeresis Udiaeresis
149     keycode 251 = ssharp question backslash
150     keycode 252 = asciicircum degree
151     keycode 253 = 3 sterling
152     keycode 254 = Mode_switch
153
154     使用event对象的keyCode属性判断输入的键值
155     eg:if(event.keyCode==13)alert(“enter!”);
156      键值对应表
157      A  0X65       U   0X85
158      B  0X66       V   0X86
159      C  0X67       W   0X87
160      D  0X68       X   0X88
161      E  0X69       Y   0X89
162      F  0X70       Z   0X90
163      G  0X71       0   0X48
164      H  0X72       1   0X49
165      I   0X73       2   0X50
166      J   0X74       3   0X51
167      K  0X75       4   0X52
168      L  0X76       5   0X53
169      M  0X77       6   0X54
170      N  0X78       7   0X55
171      O  0X79       8   0X56
172      P  0X80       9   0X57
173      Q  0X81      ESC  0X1B
174      R  0X82      CTRL  0X11
175      S  0X83      SHIFT 0X10
176      T  0X84      ENTER 0XD
177
178
如果要使用组合键,则可以利用event.ctrlKey,event.shiftKey,event .altKey判断是否按下了ctrl键、shift键以及alt键
如下限制文本只能输入数字
<input type=”text” id=”goods_price” name=”goods_price” value=”" size=”30″ maxlength=”10″ />
<script type=”text/javascript”>
var obj = document.getElementById(‘goods_price’);
obj.onkeypress=function(){
if (event.keyCode < 45 || event.keyCode > 57)
event.returnValue = false;
}
</script>
最近自己用 CodeIgniter 和 jQeury 来做一个企业站的CMS,在有些地方需要限制键入的内容,通过javaScript来监听event.keycode的值作出限制。以下是keycode值的表是从网上找的,发到自己的博客方便自己和大家以后查阅,如果有错漏请大家指正,多谢。
2009年10月22日 | 分类: jQuery | 标签: ,
用jquery解析JSON数据的方法
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。
这里首先给出JSON字符串集,字符串集如下:
代码如下:
var data=” <br />{ <br />root: <br />[ <br />{name:'1',value:'0'}, <br />{name:'6101',value:'北京市'}, <br />{name:'6102',value:'天津市'}, <br />{name:'6103',value:'上海市'}, <br />{name:'6104',value:'重庆市'}, <br />{name:'6105',value:'渭南市'}, <br />{name:'6106',value:'延安市'}, <br />{name:'6107',value:'汉中市'}, <br />{name:'6108',value:'榆林市'}, <br />{name:'6109',value:'安康市'}, <br />{name:'6110',value:'商洛市'} <br />] <br />}”;
这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。
1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
var dataObj=eval(“(“+data+”)”);//转换为json对象
alert(dataObj.root.length);//输出root的子对象数量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
//输出每个root子对象的名称和值
alert(“name:”+item.name+”,value:”+item.value);
})
注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
$.getJSON(“http://www.phpzixue.cn/”,{param:”gaoyusi”},function(data){
//此处返回的data已经是json对象
//以下其他操作同第一种情况
$.each(data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}
alert(“name:”+item.name+”,value:”+item.value);
});
});
这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
文章来源 : 互联网

用jQuery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。

这里首先给出JSON字符串集,字符串集如下:

代码如下:

var data=” <br />{ <br />root: <br />[ <br />{name:'1',value:'0'}, <br />{name:'6101',value:'北京市'}, <br />{name:'6102',value:'天津市'}, <br />{name:'6103',value:'上海市'}, <br />{name:'6104',value:'重庆市'}, <br />{name:'6105',value:'渭南市'}, <br />{name:'6106',value:'延安市'}, <br />{name:'6107',value:'汉中市'}, <br />{name:'6108',value:'榆林市'}, <br />{name:'6109',value:'安康市'}, <br />{name:'6110',value:'商洛市'} <br />] <br />}”;

这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。

阅读全文…

2009年10月22日 | 分类: jQuery | 标签: ,
jquery中的选择器是css3和XPath的结合,jQuery提取这两种查询语言最好的部分,结合后创造出了最终的jquery表达式查询语言。如果你CSS非常熟悉的话那么你学起来就很容易了。
基本选择器:
$(“#myELement”) 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素
$(“div”) 选择所有的div标签元素,返回div元素数组
$(“.myClass”) 选择使用myClass类的css的所有元素
$(“*”) 选择文档中的所有的元素
可以运用多种的选择方式进行联合选择:例如$(“#myELement,div,.myclass”)
层叠选择器:
$(“form input”) 选择所有的form元素中的input元素
$(“#main > *”) 选择id值为main的所有的子元素
$(“label + input”) 选择所有的label元素的下一个input元素节点
经测试选择器返回的是label标签后面直接跟一个input标签的所有input标签元素
$(“#prev ~ div”) 同胞选择器
该选择器返回的为id为prev的标签元素的所有的属于同一个父元素的div标签
基本过滤选择器:
$(“tr:first”) 选择所有tr元素的第一个
$(“tr:last”) 选择所有tr元素的最后一个
$(“input:not(:checked) + span”)
过滤掉:checked的选择器的所有的input元素
$(“tr:even”) 选择所有的tr元素的第0,2,4… …个元素(注意:因为所选择的多个元素时为数组,所以序号是从0开始)
$(“tr:odd”) 选择所有的tr元素的第1,3,5… …个元素
$(“td:eq(2)”) 选择所有的td元素中序号为2的那个td元素
$(“td:gt(4)”) 选择td元素中序号大于4的所有td元素
$(“td:ll(4)”) 选择td元素中序号小于4的所有的td元素
$(“:header”)
$(“div:animated”)
内容过滤选择器:
$(“div:contains(‘John’)”) 选择所有div中含有John文本的元素
$(“td:empty”) 选择所有的为空(也不包括文本节点)的td元素的数组
$(“div:has(p)”) 选择所有含有p标签的div元素
$(“td:parent”) 选择所有的以td为父节点的元素数组
可视化过滤选择器:
$(“div:hidden”) 选择所有的被hidden的div元素
$(“div:visible”) 选择所有的可视化的div元素
属性过滤选择器:
$(“div[id]“) 选择所有含有id属性的div元素
$(“input[name='newsletter']“) 选择所有的name属性等于’newsletter’的input元素
$(“input[name!='newsletter']“) 选择所有的name属性不等于’newsletter’的input元素
$(“input[name^='news']“) 选择所有的name属性以’news’开头的input元素
$(“input[name$='news']“) 选择所有的name属性以’news’结尾的input元素
$(“input[name*='man']“) 选择所有的name属性包含’news’的input元素
$(“input[id][name$='man']“) 可以使用多个属性进行联合选择,该选择器是得到所有的含有id属性并且那么属性以man结尾的元素
子元素过滤选择器:
$(“ul li:nth-child(2)”),$(“ul li:nth-child(odd)”),$(“ul li:nth-child(3n + 1)”)
$(“div span:first-child”) 返回所有的div元素的第一个子节点的数组
$(“div span:last-child”) 返回所有的div元素的最后一个节点的数组
$(“div button:only-child”) 返回所有的div中只有唯一一个子节点的所有子节点的数组
表单元素选择器:
$(“:input”) 选择所有的表单输入元素,包括input, textarea, select 和 button
$(“:text”) 选择所有的text input元素
$(“:password”) 选择所有的password input元素
$(“:radio”) 选择所有的radio input元素
$(“:checkbox”) 选择所有的checkbox input元素
$(“:submit”) 选择所有的submit input元素
$(“:image”) 选择所有的image input元素
$(“:reset”) 选择所有的reset input元素
$(“:button”) 选择所有的button input元素
$(“:file”) 选择所有的file input元素
$(“:hidden”) 选择所有类型为hidden的input元素或表单的隐藏域
表单元素过滤选择器:
$(“:enabled”) 选择所有的可操作的表单元素
$(“:disabled”) 选择所有的不可操作的表单元素
$(“:checked”) 选择所有的被checked的表单元素
$(“select option:selected”) 选择所有的select 的子元素中被selected的元素
文章来源 : 互联网

jquery中的选择器是css3和XPath的结合,jQuery提取这两种查询语言最好的部分,结合后创造出了最终的jquery表达式查询语言。如果你CSS非常熟悉的话那么你学起来就很容易了。

基本选择器:

$(“#myELement”) 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素

$(“div”) 选择所有的div标签元素,返回div元素数组

$(“.myClass”) 选择使用myClass类的css的所有元素

$(“*”) 选择文档中的所有的元素

可以运用多种的选择方式进行联合选择:例如$(“#myELement,div,.myclass”)

阅读全文…

2009年10月22日 | 分类: jQuery | 标签: ,
基本的鼠标互动:
拖拽(drag and dropping)、排序(sorting)、选择(selecting)、缩放(resizing)
各种互动效果:
手风琴式的折叠菜单(accordions)、日历(date pickers)、对话框(dialogs)、滑动条(sliders)、表格排序(table sorters)、页签(tabs)、放大镜效果(magnifier)、阴影效果(shadow)
第一部分:鼠标交互:
1.1 Draggables:拖拽:
所需文件:
ui.mouse.js
ui.draggable.js
ui.draggable.ext.js
用法:文件载入后,可以拖拽class = “block”的层
$(document).ready(function(){
$(“.block”).draggable();
});
draggable(options)可以跟很多选项
选项说明:http://docs.jquery.com/UI/Draggables/draggable#options
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/tests/draggable.html
1.2 Droppables:
所需要文件,drag drop
ui.mouse.js
ui.draggable.js
ui.draggable.ext.js
ui.droppable.js
ui.droppable.ext.js
用法:
$(document).ready(function(){
$(“.block”).draggable({helper: ‘clone’});
$(“.drop”).droppable({
accept: “.block”,
activeClass: ‘droppable-active’,
hoverClass: ‘droppable-hover’,
drop: function(ev, ui) {
$(this).append(“<br>Dropped!”);
}
});
});
选项说明:http://docs.jquery.com/UI/Droppables/droppable#options
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/tests/droppable.html
1.3 Sortables 排序:
所需要的文件
jquery.dimensions.js
ui.mouse.js
ui.draggable.js
ui.droppable.js
ui.sortable.js
用法:
$(document).ready(function(){
$(“#myList”).sortable({});
});
dimensions文档http://jquery.com/plugins/project/dimensions
选项说明:http://docs.jquery.com/UI/Sortables/sortable#options
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/demos/ui.sortable.html
1.4 Selectables 选择:
所需要的文件
jquery.dimensions.js
ui.mouse.js
ui.draggable.js
ui.droppable.js
ui.selectable.js
用法:
$(document).ready(function(){
$(“#myList”).selectable();
});
选项说明:http://docs.jquery.com/UI/Selectables/selectable#options
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/tests/selectable.html
1.5 Resizables改变大小:
所需要的文件 ,此例子需要几个css文件
jquery.dimensions.js
ui.mouse.js
ui.resizable.js
用法:
$(document).ready(function(){
$(“#example”).resizable();
});
CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css
选项说明:http://docs.jquery.com/UI/Resizables/resizable#options
选项实例:http://dev.jquery.com/view/trunk … s/ui.resizable.html
第二部分:互动效果:
2.1 Accordion 折叠菜单:
所需要的文件:
ui.accordion.js
jquery.dimensions.js
用法:
$(document).ready(function(){
$(“#example”).accordion();
});
CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css
选项说明:http://docs.jquery.com/UI/Accordion/accordion#options
选项实例:http://dev.jquery.com/view/trunk/plugins/accordion/?p=1.1.1
2.2 dialogs 对话框:
所需要的文件:
jquery.dimensions.js
ui.dialog.js
ui.resizable.js
ui.mouse.js
ui.draggable.js
用法:
$(document).ready(function(){
$(“#example”).dialog();
});
CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css
选项说明:http://docs.jquery.com/UI/Dialog/dialog#options
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/tests/dialog.html
2.3 sliders 滑动条:
所需要的文件
jquery.dimensions.js
ui.mouse.js
ui.slider.js
用法:
$(document).ready(function(){
$(“#example”).slider();
});
CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css
选项说明:http://docs.jquery.com/UI/Slider/slider#options
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/demos/ui.slider.html
2.4 Tablesorter表格排序:
所需要的文件
ui.tablesorter.js
用法:
$(document).ready(function(){
$(“#example”).tablesorter({sortList:[[0,0],[2,1]], widgets: ['zebra']});
});
CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css
选项说明:http://docs.jquery.com/Plugins/Tablesorter/tablesorter#options
选项实例:http://tablesorter.com/docs/#Demo
2.5 tabs页签(对IE支持不是很好):
所需要的文件
ui.tabs.js
用法:
$(document).ready(function(){
$(“#example > ul”).tabs();
});
CSS文件:http://dev.jquery.com/view/trunk/themes/flora/flora.all.css
选项说明:http://docs.jquery.com/UI/Tabs/tabs#initialoptions
选项实例:http://dev.jquery.com/view/trunk/plugins/ui/tests/tabs.html
tabs ext http://stilbuero.de/jquery/tabs_3/rotate.html
第三部分:效果:
3.1 Shadow 阴影
实例http://dev.jquery.com/view/trunk/plugins/ui/demos/ui.shadow.html
3.2 Magnifier 放大
实例http://dev.jquery.com/view/trunk/plugins/ui/demos/ui.magnifier.html

基本的鼠标互动:

拖拽(drag and dropping)、排序(sorting)、选择(selecting)、缩放(resizing)

各种互动效果:

手风琴式的折叠菜单(accordions)、日历(date pickers)、对话框(dialogs)、滑动条(sliders)、表格排序(table sorters)、页签(tabs)、放大镜效果(magnifier)、阴影效果(shadow)

第一部分:鼠标交互:

1.1 Draggables:拖拽:

阅读全文…

2009年10月15日 | 分类: 七二日志 | 标签:

真的没有想我的博客这么快就开了一年啦,当时开博也只是想玩玩而且,嘻嘻,哪些费话还是少说吧,说说要感谢的朋友们吧,首先感谢MIMI和绣财的支持和鼓励,如果没有他们当时支持我开这个博客,我想我这个博客不会存在于这个互联网的虚拟世界中吧,也得感谢脑袋以及各位朋友的到访和支持,还是哪句老话:“如果你有什么建议或意见可以到留言板给我留言”,再次感谢各位的支持。

七二

2009-10-15晚

2009年9月12日 | 分类: CodeIgniter, PHP | 标签:

EllisLab 发布了 CodeIgniter 1.7.2。有什么新内容?主要的更改如下:

  • 兼容 PHP 5.3.0。
  • 新增购物车类库。
  • 改善表单辅助函数。
  • 在公共函数中新增 is_php(),让 PHP 版本比较更方便。
  • 修改 show_error() 以便发送 HTTP 服务器响应码,并且所有内部错误提示都会发送合适的状态码。
  • 修复了很多 BUG。

1.7.2 版已经在 subversion 中存在了很长一段时间了,并且已经于 7 月下旬兼容于 PHP 5.3.0,不过可以理解的是许多用户并没有使用那个开发中的版本。虽然我也希望能有时间为这个版本多增加一些“大改动”的项目,并把版本号变为 1.8,但时间不等人。我们的许多用户都在 Mac 上开发,但 OS X“雪豹”中的 PHP 是 5.3.0,所以与其让用户继续等待不如先推出这个稳定版–毕竟已经 7 个月没有更新了。虽然如此,也还是有一些惊喜和可喜的变化。敬请享用!

阅读全文…

2009年9月7日 | 分类: SEO | 标签: , ,

Yahoo给出的包括Yslow规则(22条)的34条 详细说明 ,通过这此规则对自己页面进行一次全面的分析优化,可以提高你网站的加载速度。

1.Minimize HTTP Requests 减少HTTP请求
图片、CSS、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里,利用 CSS sprites 将小图拼合后利用background来定位。

2.Use a Content Delivery Network 利用CDN技术
CDN 确实是好东西,8过服务器提供商的这项服务一般是要收费的,我以前买的国内空间是有这个的但是我当时根本不知道啥用,现在没了。。。

阅读全文…