Ext学习笔记(1

昨天用了一下午学习Ext, 搞了一下午最后连个表格都没搞出来, 今天继续, 顺便记录一下.

中文在线手册 http://www.ajaxjs.com/docs/

这里请大家注意一下, 看手册一定要看源码包里的那个docs目录里的, Ext手册版本差异很大, 不一定最新的就一定适用。

使用Ext之前需要加载Ext库, 昨天直接加载核心, 竟然不好用, 最后看例子里面是加载了两个文件, 原因还没搞清楚, 但先记下来.

<script type=”text/javascript” src=”../ext-2.2/adapter/ext/ext-base.js”></script>
<script type=”text/javascript” src=”../ext-2.2/ext-all.js”></script>

最基础的

1
Ext.onReady(fn);

这个和Jquery的$(fn)是一样的, 就是页面加载完毕执行fn

1
Ext.get('idName');

这个就是Jquery中的$(‘#idName’), 返回一个Ext的Element对象.

Element.dom是该对象的DOM节点, 其他内容看手册里的Element部分

1
Ext.select('p')

这个类似Jquery中的$(‘p’), 但是Ext中没有each, Ext.select(‘p’).methodName()直接就作用在全部对象上.

事件绑定

1
Element.on('click', fn);

获得事件句柄

1
2
3
4
5
clicked = function(e){
Ext.get(e.target).highlight();//e.target为触发该事件的对象id, highlight是高亮闪烁
}

Ext.select('p').on('click',clicked);

消息框
Ext.MessageBox为Ext的消息对象.

Ajax
ajax部分和Jquery非常相像了

1
2
3
4
5
Ext.get('msg').load({
url: 'http://test/ext/data.php',
params: 'name=1',
text: 'Updating...'
});

长城在哪里?

刚刚在玩Google Earth, 在美国逛了一大圈之后又在国内逛, 逛到北京就想起来看看长城什么样子, 从小到大, 我都没出过吉林省. 在北京附近找了好一阵子, 大概20分钟, 才差不多确定长城的位置. 但基本上什么也看不到, 我一直对在太空能看到长城的说法深信不疑, 没想到, 放到最大都看不到.

where is the great wall

谁在上面这个图上看到长城了记得告诉我.

像我这样的好孩子在小的时候就听老师讲在太空能看见的唯一建筑就是长城, 而且不只是老师讲, 教科书上也是这么说的, 真太失望了. 只有google一下, 发现原来这个问题在几年前引发过大规模的讨论.

曾在太空站工作的宇航员威廉·博格在1991年出版的《在太空中如何盥洗》一书中说,在那样的高度上已无法用肉眼看到长城,而需要用望远镜才能看到。

2000年凤凰卫视曾采访第一批登上月球的宇航员之一奥尔德林。他说,在月球上是看不到万里长城的,长城是狭窄而不规则的,在轨道上,很难看到不规则的事物。

2000年5月4日,首位太空游客蒂托在接受记者采访时也说,我从中国上空飞过时看到了中国的河流和山脉,但没有看到中国的长城

2003年10月中国首位宇航员杨利伟返回地球后表示:“看到地球景色非常美丽,但我没有看到我们的长城。”

2004年年初,全国政协委员王翔在政协会议上的提案要求有关部门尽快纠正小学语文课本第七册课文《长城砖》中有关宇航员肉眼能看到长城的错误,教育部对此公开答复表示纠错工作正在进行。

美国宇航员尤金·塞尔南2004年2月访问新加坡时表示,“在高度为160-320公里的地球轨道上,中国的长城的确可以用肉眼看到”。国际空间站远征七队的科学官埃德·刘也赞同他的观点。

2004年5月11日欧洲空间局网站首页以“从太空看中国长城”为题,发布了一张“普罗巴”卫星3月25日过境时获取的高分辨率卫星图像,文字说明指出,该图右上方一条蜿蜒曲折的细线条是延伸7240公里的长城。该公告还认为,如果天气、光照等条件适合,宇航员可以用肉眼看到长城。

公告刊出仅一天后,美国宇航局网站转发了这条信息和图像。两家国际公认的空间科技权威机构发布的信息立刻引起广泛关注,类似“从太空看到长城并非神话”的报道出现于内地多家媒体,还有文章“叫停”政协委员建议小学语文课本应纠错的提案。

与此同时,质疑和否定的意见也纷纷见诸报端和网站。复旦大学和美国加州大学的学者首先提出不可能是长城,根据立体效应和翻转180度看,图像很明显是一条汇聚水流的山沟。

2004年5月19日欧空局发布纠错公告,承认此前公布的图像发生解释错误,把一条注入密云水库的河流误判为长城,至于那条被判为运河的影像是否有错和宇航员能否看到长城等问题则未提及。

2004年5月27日,北京市测绘设计研究院的科技人员用航片、1:1万地形图与欧空局的图像进行叠加分析后提出新的看法,长城、河流之说都不正确,是条山间公路。

真TMD的郁闷被这个谎言忽悠了十几年, 而且深信不疑, 现在这年头, 媒体不可信, 书籍也不可信, 连小学教材都不可信, Chnee 的教育真TMD….. 幸好我学习不太好, 要么现在肯定成白痴了.

面向对象的访问控制

这两天有在看php5的面向对象的一些教程, 因为php4用的比较多,所以对面向对象这个概念并不是很熟悉.

这里只是简单记录一下关于public, private和protected.

public(公共的)应该比较容易理解, 完全公开, 任何地方都可以访问, 包括该类内部, 外部, 子类等等.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
class a{
public $a;

function __construct(){
$this->a = "1";
}

function test(){
echo $this->a;
}
}

class b extends a{
function test2(){
echo $this->a;
}
}

$a = new a;
$a->test();
// 这里说明public属性对象内部可访问, 而该语句没报错是
// 因为test方法也可以访问, 说明方法默认为public

echo $a->a; // 这里说明public属性外部也可以访问
$b = new b;
$b->test2(); // 这里说明public属性在子类中可以访问
echo $b->a; // 这里说明public属性在子类外部也可以访问

private(私有的)可以理解为只有对象的内部可以访问, 但是其中有可比较难理解的概念, 就是继承来的public方法可以访问到父类的private方法和属性, 而且实际上private属性和方法在技术上是无法被覆写的, 这个我目前还没有研究太透彻.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php
class c{
private $a;

function __construct(){
$this->a = "2";
}

function test(){
echo $this->a;
}
}

class d extends c{
function test2(){
echo $this->a;
}
}

class e extends c{
private $a="3";
function test2(){
echo $this->a;
}
}

$c = new c;
$c->test();// 这里说明private属性对象内部可访问
// echo $c->a; // 这里会报错说明private属性外部不可以访问
$d = new d;
echo '[';
$d->test(); // 这里输出2,说明在test()中可以访问到class c 的$a
echo ']';
$d->test2(); // 这里没有产生输出说明private属性在子类中不可见
echo $d->a; // 这里也没有产生输出说明private属性在子类外部也是不可见的
$e = new e;
echo '{';
$e->test(); // 这里输出2, 说明该方法可见, 但访问的是父类的$a
echo '}';
$e->test2();
// 这里输出了3说明$a被覆写了, 但其实在class e中
// 其父类的$a并不可见,所以并不是覆写而是创建

protected (受保护的)我个人理解就是在对象和子对象中你想怎么用都可以, 就是不可以在外面用.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class f{
protected $a = "4";
function test(){
echo $this->a;
}
}

class g extends f{
function test2(){
echo $this->a;
}
}
$f = new f;
$f->test(); // 这里产生了输出,说明protected属性对象内部可以访问
//echo $f->a; // 这里报错说明protected属性对象外部不可以访问
$g = new g;
$g->test2(); // 这里输出4,说明protected属性在子类中可以访问
$g->test(); // 这里输出4,说明protected属性在子类中可以访问
// echo $g->a; //这里报错,说明protected属性在子类的外部不可访问

Sablog-X 1.6 => Wordpress 2.2.3 转换程序 - 080422 测试版

这个转换程序终于算是完成了, 不过我只简单测试了一下, 欢迎各位网友进行测试.

我不建议菜鸟进行这个测试, 因为比较危险, 我当初转了2天, 试了不知道多少次才转过来, 虽然这个是全自动的, 但我也不敢保障, 如果有很需要转换而且觉得不把握的, 可以留言或者发email免费咨询, 如果觉得自己做不了的但很需要转的, 我可以提供收费援助.

注意: 使用前一定要备份! 一定 !!! 否则后果自负 !!!!!

__ 使用说明 __
准备事项:
1)备份要转换的sablog-x数据表及附件
2)准备一个本地php+mysql环境, 推荐xampp 3)创建程序目录结构如下
sa-wp/
sa-wp/sa/
sa-wp/wp/
4)分别在sa/和wp/下安装sablog-x 1.6和wordpress 2.2.3, 要转换其他版本的请对比一下版本之间数据库有没有改动, 没有才可以进行转换, 然后再升级wordpress就可以, 如果数据库结构不同, 那不好意思了. 注意sablog-x的表名前缀要和要转换的设置相同,sa和wp的表要放在同一数据库下.
5)将备份导入sablog-x, 将附件附件放到sablog-x内
6)将转换程序放在sa-wp/目录下

配置参数:
修改转换程序的设置,修改如下内容:

$s[‘hostname’] = ‘localhost’;    # 数据库地址
$s[‘username’] = ‘root’;    # 数据库帐号
$s[‘password’] = ‘’;        # 数据库密码
$s[‘dbname’]   = ‘s-w’;        # 数据库名
$s[‘sa_pre’]   = ‘sablog_’;    # sablog-x表名前缀
$s[‘wp_pre’]   = ‘wp_’;        # wordpress表名前缀
$s[‘sa_dir’]   = ‘sa/‘;        # sablog-x安装目录
$s[‘wp_dir’]   = ‘wp/‘;        # wordpress安装目录
$s[‘wp_url’]   = ‘http://www.foolbird.net/‘;    # 网站访问地址, 注意后面加/

运行转换程序…

收尾工作:

1)进入wordpress后台, 或者使用phpmyadmin导出数据表内容
2)将空间上的sablog-x彻底删除. 全新安装wordpress 2.2.3, 将wp-content/uploads上传到服务器的wp-content下, 然后清空数据库, 导入刚刚导出的数据.

转换程序:

sa-wp_080422

当年我做过的面试题目

刚刚看了bobhero准备的考试题, 是做留言本的, 所以想起了我以前做的一套面试题.

个人觉得这套题还是不错的, geel花了不少心思出的, 题先发出来, 答案整理过后再跟上.

__ 1.php __

__ 试题 __

XHTML和CSS方面的问题不允许借用dreamweaver之类的工具。

一、php方面

1、打开1.php,在文件里写一个类Test实现ITest接口。(如果不会实现接口可以直接改写成类)
2、在当前目录下写一个文件 1-1.php,依次调用你刚才写的Test类的所有method。
3、上述代码(interface ITest)中,public修饰符是什么意思?同类修饰符还有哪些?各有什么意义?
4、上述代码中,function前面为什么要加static关键字?php的关键字和函数区别大小写吗?
4.1、文件 1.php 中不添加结尾的 “?>” 可以运行吗?不添加 “?>” 有什么作用吗?
5、=== 和 == 有什么区别?
6、引用的利弊?一般来说各自在什么情况下用?function如何返回引用?如何给一个function传递引用?
7、一个典型web程序(例如一个论坛)的性能瓶颈通常来说在什么地方?一般采用什么什么方法来提高执行效率?
8、一般用什么办法判断当前页面是用户 post而不是get?

二、XHTML和CSS以及javascript方面
9、简述两条w3c关于XHTML1.0的规范
10、访问过的超链接样式不再具有css里定义的hover和active了,问题的原因可能是?解决方法是?
答案::visited
11、定义一个层,用css实现下列样式:高200px,宽300px,其边框宽度为1px,边框颜色为红色,背景颜色为蓝色,文字颜色为白色,文字水平和垂直居中,文字大小14px,粗体
12、设有 <ul><li>aaa</li><li>bbb</li></ul>,用css使aaa和bbb显示在同一行上。
答案:display:inline;
13、onblur事件在什么时机被触发?
答案:失去焦点
14、请指出body是什么元素的子元素?
答案:document
15、设有如下HTML代码:
<input type=”text” id=”companyName” />
<p id=”company”></p>
<input type=”button” onclick=”setCompanyName()” value=”设置公司名” />
请完成 setCompanyName() 方法,使点击按钮的时候,将<p>中的文字设置为输入框中的文字。如果点击按钮时输入框里没有文字,弹出“请输入文字”的提示。
16、使用过哪些js类库?

三、其他部分
17、使用过哪些发行版本的Linux?喜欢他们的哪些地方?
18、在linux下面你一般用什么方法安装一个软件?
19、bash下面 ls -lah 代表什么意思?
19、rm -i 代表什么意思?rm -f 呢?
20、你用什么办法登录到一台 linux 主机?21、一个文件的权限为 764,表示什么意思?用什么命令将这个文件的权限改为 700?
22、FTP传输过程中binary和ascii模式有什么区别?
23、一个ftp服务器ip为1.2.3.4,端口为123,用户名是 andy,密码是 xyz,要求下载 movie 目录下的 1.rm,请写出可以直接下载这个文件的 URL
24、HTTP返回代码中404代表什么含义?302呢?
25、<script src=”a.js?0607”></script>,请问为什要写问号及其后面的内容?
答案:防止缓存
26、假设第1题中某一个方法你不知道怎么实现,一般情况下你会通过哪些途径来解决?