作者归档: Hessian

JavaScript中类的定义

      1.类的定义机制  

1>function关键字定义

2>function内部通过this指针定义的成员。

3>function类似于其他语言中的构造函数(constructor)

demo1

function cls()
{
 
     this.txt = “111”;
 
     this.display = function(){ alert(“this is a test method”); }
}
var obj=new cls();
 

2.理解new创建对象的过程

通过new cls()获得对象obj,对象obj便自动获得了属性txt和方法display  

new 创建对象过程:  

1>当解释器遇到new操作符时便创建一个空对象;   

2>开始运行cls这个构造函数,并将其中的this指针都指向这个新建的对象;   

3>当给对象不存在的属性赋值时,解释器就会为对象创建该属性。

例如在cls中,当执行到this.txt=”111″这条语句时,就会添加一个属性txt,并把字符串“111”赋给它,这样函数执行就是初始化这个对象的过程,即实现构造函数的作用;   

4>当函数执行完后,new操作符就返回初始化后的对象。  

3.demo1中定义的缺点

JavaScript中,function的定义实际上就是实现一个对象的构造器,是通过函数来完成的。这种方式的缺点是:   

·将所有的初始化语句、成员定义都放到一起,代码逻辑不够清晰,不易实现复杂的功能。   

·每创建一个类的实例,都要执行一次构造函数。构造函数中定义的属性和方法总被重复的创建,例如: this.display=function(){  alert(“this is a test method”); }   

每创建一个cls的实例,display都会被创建一次,造成了内存的浪费。  

Read: 754

[原创]JOOMLA模板一例

body {
margin: 0px;
background:#666666 url(../images/bg.jpg) repeat-y scroll center;
color:#cccc99;
font-size:12px;
font-family: Arial, PMingLiU, Sans-Serif;
}
a:link, a:visited {
color:#cccc33;
text-decoration: none;
font-weight: normal;
}
a:hover{color:#ff6600;text-decoration: underline;}
#wrap{
margin:0 auto;
}
#header{
min-height:90px;
}
#headercnt{
position: relactive;
top:10px;
height:70px;
overflow:hidden;
}
#mainbox{
margin:0 auto;
width:700px;
}
#logo {
position: relactive;
left: 0;
top: 0;
float: left;
width: 200px;
height: 75px;
background: url(../images/jeek-logo.gif) 0 0 no-repeat;
margin-left: 15px;
margin-top: 5px;
}
#tabarea{
margin:0 auto;
width:100%;
min-height:24px;
background:url(../images/heading.gif);
background-repeat:repeat-x;
text-align: center;
}
#tabarea ul {
margin: 0;
padding: 0;
list-style:none;
}#tabarea li {
float: left;
padding:0;
margin: 4px 0px 0px 15px;
font-size:14px;
}
#tabarea li a{
color:#ffff00;
font-weight:bold;
}
#patharea{
margin:0 auto;
width:100%;
min-height:22px;
background-color:#333300;
text-align: left;
}
#patharea .breadcrumbs{
float:left;
width:72%;
margin-left:15px;
}
#pathRight{
margin:0 auto;
float:left;
width:25%;
background-color:#333300;
text-align: left;
}
#pathRight #mod_search_searchword{
font-size:12px;
padding:0;
margin:2px;
color:#999999;
background:#333300;
width:140px;
height:14px;
border-top:solid 1px #666666;
border-left:solid 1px #666666;
border-right:solid 1px #cccccc;
border-bottom:solid 1px #cccccc;
}
#pathRight .button{
font-size:12px;
padding:0;
height:16px;
margin:0px;
color:#999999;
background:#333300;
border-top:solid 1px #cccccc;
border-left:solid 1px #cccccc;
border-right:solid 1px #666666;
border-bottom:solid 1px #666666;
}
#bodybox{
clear:both;
}

#leftcol{
float:left;
text-align:left;
margin:0px;
width:25%;
}
#leftcol table{
margin:0 0 10px 10px;
width:100%;
text-align:left;
}

#mod_login_username,#mod_login_password{
width:85%;
height:14px;
color:gray;
border:dotted 1px;
background:#663333;
}

#leftcol .poll{
margin:0 0 10px 5px;
width:100%;
text-align:left;
}
#leftcol ul{
margin:0;
padding:0 0 10px 10px;
list-style-position:inside;
}
#leftcol li{
width:90%;
height:14px;
overflow:hidden;
}

#maincol{
float:left;
margin:0px;
width:73%;
min-height:600px;
text-align:left;
border-left:dashed 1px #999999;
}
#system-message{
border:solid 4px #660000;
background:yellow;
color:red;
font-weight:bold;
padding-left:10px;
}
#bigbox{
width:98%;
margin-left:3px;
float:left;
}
#boxtop{
border-bottom:dashed 1px #999999;
float:left;
width:100%;
}
#boxtop ul{
list-style-position:inside;
margin:5px 0 5px 5px;
padding:0 0 0 5px;
}
#boxtop li{
width:90%;
height:14px;
overflow:hidden;
}
#boxtop_l{
width:50%;
padding-top:5px;
float:left;
}
#boxtop_r{
width:49%;
padding-top:5px;
float:left;
border-left:dashed 1px #999999;
}
#boxmiddle{
float:left;
}
.pagination span{
margin-left:4px;
}
.pagination a{
margin-left:4px;
}
#footer{
color:gray;
clear:both;
border-top:solid 1px black;
}
#footer #line{
width:100%;
clear:both;
height:15px;
border-top:solid 1px #999999;
}

<?php
/**
* @copyright    Copyright (C) 2005 – 2007 Open Source Matters. All rights reserved.
* @license        GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”<?php echo $this->language; ?>” lang=”<?php echo $this->language; ?>” >
<head>
<jdoc:include type=”head” />
<link href=”templates/<?php echo $this->template ?>//static.hessian.cn/css/test.css” rel=”stylesheet” type=”text/css” />
</head>

<body>
<div id=”top”></div>    <!– 页面边框头部 –>
<div id=”wrap” align=”center”>
<div id=”mainbox”>
<div id=”header”>
<div id=”logo”></div>
<div id=”headcnt”>
<jdoc:include type=”modules” name=”headerContent” />
</div>
</div>
<div id=”tabarea” align=”center”>
<div id=”navbar”>
<jdoc:include type=”modules” name=”tabArea” />
</div>
</div>
<div id=”patharea”>
<jdoc:include type=”modules” name=”pathArea” />
<div id=”pathRight”>
<jdoc:include type=”modules” name=”pathRight” />
</div>
</div>
<div id=”bodybox”>
<div id=”framehead”></div> <!– 正文部分边框头 –>
<div id=”leftcol”>
<jdoc:include type=”modules” name=”leftColum” />
</div>
<div id=”maincol”>
<div id=”bigbox”>
<jdoc:include type=”message” />
<?php if($this->countModules(‘boxTopLeft or boxTopRight’)): ?>
<div id=”boxtop”>
<?php if($this->countModules(‘boxTopLeft’)): ?>
<div id=”boxtop_l”><jdoc:include type=”modules” name=”boxTopLeft” /></div>
<?php endif; ?>
<?php if($this->countModules(‘boxTopRight’)): ?>
<div id=”boxtop_r”><jdoc:include type=”modules” name=”boxTopRight” /></div>
<?php endif; ?>
</div>
<?php endif; ?>
<div id=”boxmiddle”>
<jdoc:include type=”modules” name=”boxMiddle” />
<jdoc:include type=”component” />
</div>
<div id=”boxbottom”><jdoc:include type=”modules” name=”boxBottom” /></div>
</div>
</div>
<div id=”framefoot”></div> <!– 正文部分边框底部 –>
</div>
<div id=”footer”>
<div id=”line”></div>
<jdoc:include type=”modules” name=”footer” />
</div><!– 底部 通常放版权信息的位置 –>
</div>
</div>
<div id=”bottom”></div>    <!– 页面边框底部 –>

</body>
</html>

Read: 799

[转] 关于到底什么是 WEB标准

看来基本上得到大家的认可,关于分歧的部分和没有讲到的部分我们在深入探讨,

CSS的并发连接和服务器负载问题处理,也应该是web标准认识关心的。

到底SEO,IA,交互设计,用户体验算不算是Web标准的范畴,我明确一点

“用正确的方法去做正确的网页”

正确的网页是什么
1。优秀的信息架构
2。良好的交互设计

1和2最终达到了良好的用户体验

正确的方法是什么
1。标准的语言规范,XHTML,CSS,ECMAScript (标准的Javascript),DOM,XML,XMLHTTPRequest,甚至XSL等W3C的标准化规范语言
2。浏览器设备的支持情况的权衡以及解决方法
3。海量用户访问是的服务器负载

最终用户得到了良好的用户体验,搜索引擎得到了你想Open的数据,结果很完美!!

关于web标准,我建议大家不要停留在老外们的思维角度,要去消化他而不是模仿他,要站在巨人的肩膀上看得更远,不管什么技术,什么口号,什么方法,我的目的只有一个——我们要做到网页的最优化

Read: 685

[原创] PDO 的简单使用

<?php
$hostname    =    "localhost";    //指定主机名
$database    =    "db_book";        //指定数据库名称
$usernmae    =    "root";            //指定用户名
$password    =    "44444";    //指定密码
$dsn = "mysql:dbname=" . $database . ";host=" . $hostname;
//数据源描述
try {
    $conn    =    new PDO($dsn,$usernmae,$password);   
    //创建PDO对象 参数 : 数据源,用户名,密码
}
catch (PDOException $e) {
    echo "Connecting failed: " . $e->getMessage();
    //抛出异常
}

$sql = "select * from tb_books";
//查询字符串

echo "<pre>"; //使用文本格式输出

$conn->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); //使用小写键名 UPPER就是大写
$rs = $conn->prepare($sql);
//这个函数我理解应该是个用来建立类似持久连接的函数吧
$rs->execute();   
//这是一个可以带参数的函数,可使用变量替换查询时语句的特定标识
//如果不带参数则直接执行语句
//可以提高查询效率 具体看参考手册的介绍 PDO Functions 章节
while ($row = $rs->fetch(PDO::FETCH_ASSOC)) {
    //FETCH_ASSOC 是限定返回的结果只有 关联字段名 否则会同时返回 字段序号和关联字段名
    //浪费资源,使用关联字段名易于操作,同 mysql_fetch_assoc
    print_r($row);
};
echo "</pre>";
?>

Read: 734

C/S 与 B/S 区别

C/S 与 B/S 区别

        Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.
1.硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
3.对程序架构不同
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
4.软件重用不同
C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
5.系统维护不同
系统维护是软件生存周期中,开销大, ——-重要
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
6.处理问题不同
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
7.用户接口不同
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
8.信息流不同
C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心

Read: 590