概述
在窗体的继承中,返回对顶层窗体的引用。
语法
var topWindow = window.top;
说明
window.parent属性返回当前窗体的父窗体,而window.top则返回当前窗体的最顶层窗体。该属性在框架集的处理中尤其有用。
参考:
https://developer.mozilla.org/En/DOM/Window.top
当插入值需要从另外一张表中检索得到的时候,如下语法的sql语句已经不能完成该功能:
insert into my_table(id, name) value ((select seq_my_table.nextval from dual), ‘runto30’);
会报“ORA-02287: sequence number not allowed here”的错误,可以使用如下语句来完成:
insert into my_table(id, name) select seq_my_table.nextvalue, ‘runto30’ from dual;
参考:http://www.dbforums.com/printthread.php?t=380997
基本概念
php的数组分为两种数组:索引数组和关联数组。索引数组的键值为整数,从0开始;关联数组的键值为字符串。
不管是索引数组还是关联数组,键值都不能重复。重复的话,之前的值会被覆盖。
$arr[1] 与 $arr[‘1′]引用相同的元素,但与 arr[’01’] 引用不同元素。
关联数组的索引值要加单引号或者双引号,在php5中不加引号会报错。但在字符串中引用数组元素时则不能加引号。
$arr[‘a’] = ‘AAA’;
$arr[‘b’] = ‘BBB’;
echo “array[a] is $arr[a]”;
数组的创建
1:通过array()结构
创建索引数组:
$arr = array(‘aaa’, ‘bbb’);
创建关联数组:
$arr = array(‘a’=>’AAA’, ‘b’=>’BBB’);
创建空数组
$arr = array();
2:如果数组不存在,那么向数组存放值将创建数组,但是在一个还没有定义的数组中检索一个值不会创建数组。
$arr[0] = ‘aaa’;
$arr[1] = ‘bbb’;
foreach($arr as $v){
echo $v;
}
操作数组
1:在数组末尾添加值
$arr = array(‘a’=>’AAA’, ‘b’=>’BBB’);
$arr[] = ‘CCC’;
常用数组函数
count()或者sizeof()
获得数组大小;
array_pad()
填充数组
1:
首先找到位于WordPress安装目录/wp-includes/”目录里面的”formatting.php”文件;
2:
搜索到如下代码:
// static strings
$curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
3:
将其全部注释掉:
// static strings
// $curl = str_replace($static_characters, $static_replacements, $curl);
// regular expressions
// $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
4:
OK,搞定。
1 第一次访问,检查该文件是否存在,如果没有缓存,从数据库中取出文件放到缓存里面,以后访问,就直接从缓存里面取。每一个静态页面都需要一个辅助的meta文件,例如wp-cache-12345.meta
为什么需要独立的meta?因为返回一个静态html还不够,还有很多信息,例如还需要这个页面的时间,content-type等信息。这些信息又不能存放在html中,所以需要辅助的.meta文件
meta文件中的内容是:
$meta_object->uri = $_SERVER[‘REQUEST_URI’];
$meta_object->post = wp_cache_post_id();
$meta_object->dynamic = true;
$meta_object->headers = array();
array_push($meta_object->headers, “Last-Modified: $value”);
array_push($meta_object->headers, “Content-Type: $value”);
2 如果某篇文章修改了,删除这篇文章的缓存,如果某个blog换主题了,删除整个blog的缓存。以后按照1的逻辑来。
wp-cache-phase1 检查某页面是否存在,如果存在直接去缓存。否则进入wp-cache-phase2,访问动态页面,生成缓存文件
其中用到
ob_start(‘wp_cache_ob_callback’);
register_shutdown_function(‘wp_cache_ob_end’);
wp_cache_ob_callback wp_cache_ob_end
wp-cache-phase2还有个作用是响应页面的事件,例如publish_post edit_post delete_post publish_phone trackback_post pingback_post comment_post edit_comment wp_set_comment_status delete_comment switch_theme,不管什么事件,本质就是将缓存里面的页清空
采用这种插件形式需要修改的地方
1 cache: 需要有一个include文件,根据URL,统一判断所有的访问
2 事件响应:
由于硬盘文件系统,同一目录下的文件数超过3000个,访问就会比较慢
所以缓存文件在硬盘上的结构:需要增加目录,这样可以提升索引速度,而且删除时候也比较方便
可以按照用户,分类,日期或其他属性建立目录
http://www.builder.com.cn/2008/0328/786511.shtml