数据结构

在计算机科学中,数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率(英语:algorithmic efficiency)的算法。

一般而言,数据结构的选择首先会从抽象数据类型的选择开始。一个设计良好的数据结构,应该在尽可能使用较少的时间与空间资源的前提下,为各种临界状态下的运行提供支持。数据结构可通过编程语言所提供的数据类型、引用(英语:reference (computer science))及其他操作加以实现。

不同种类的数据结构适合于不同种类的应用,而部分甚至专门用于特定的作业任务。例如,当计算机网络依赖于路由表运作时,B树高度适用于数据库的封装。

在许多类型的程序设计中,选择适当的数据结构是一个主要的考虑因素。许多大型系统的构造经验表明,封装的困难程度与最终成果的质量与表现,都取决于是否选择了最优的数据结构。在许多时候,确定了数据结构后便能很容易地得到算法。而有些时候,方向则会颠倒过来:例如当某个关键作业需要特定数据结构下的算法时,会反过来确定其所使用的数据结构。然而,不管是哪种情况,数据结构的选择都是至关重要的。

系统构造的关键因素是数据结构而非算法的这一深入理解,导致了多种形式化的设计方法与编程语言的出现。绝大多数的语言都带有某种程度上的模块化思想,通过将数据结构的具体实现封装隐藏于受限接口后方的方法,来让不同的应用程序能够安全地重用这些数据结构。C++、Java、Python等面向对象的程序设计语言可使用类来完成这一功能。
» Read more…

ajax是什么及其工作原理?

Ajax 由 HTML、JavaScript技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。

AJAX最核心的一个对象是XMLHttpRequest,所有的Ajax操作都离不开对这个对象的操作
XMLHttpRequest对象相关方法:
打开请求
XMLHttpRequest.open(传递方式,地址,是否异步请求)
准备就绪执行
XMLHttpRequest.onreadystatechange
获取执行结果
XMLHttpRequest.responseText

php5中三种数据类型的区别

今天也没有想好写点什么,那就来说说public、protected、private三种类型的关系吧

public: 公有类型
在子类中可以通过self::var 来调用 public类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中可以能过$obj->var 来调用 public类型的方法或属性

protected: 受保护类型
在子类中可以通过self::var 来调用 protected类型的方法或属性 可以通过parent::method 来调用父类中的方法
在实例中不能通过$obj->var 来调用 protected类型的方法或属性

private: 私有类型
该类型的属性或方法只能在该类中使用,在该类的实例、子类中、子类的实例中都不能调用私有类型的属性和方法

robots.txt文件介绍

今天来研究一下robots.txt的作用,以前只是用到找一下资料,下面我把我的知识整理了一下。

什么是robots.txt

简单来说就是搜索引擎爬虫访问你的网站时,先寻找有没有robots.txt。你可以在robots.txt里告诉爬虫哪些文件不允许访问,哪些文件允许访问。

书写原则

必须放在网站根目录 ,字母全部小写。

User-agent: *
Disallow:
Allow:

User-agent::*代表所有搜索引擎的爬虫,如果只想特定某个搜索引擎,替换*就可以了。
Disallow:设置不允许访问的文件目录。

Allow:设置允许访问的文件目录。

如何创建

自己创建一个文本,按照上面的格式书写上传,如果你装有Google XML Sitemaps插件,就会自动在根目录生成一个robots.txt文件。

应用
User-agent: *
Disallow: / 禁止所有爬虫访问

User-agent: *
Disallow: 允许所有爬虫访问

User-agent: Baiduspider
Disallow: / 禁止百度爬虫访问

User-agent: Googlebot
Disallow: / 禁止Google爬虫访问

User-agent: sogou spider
Disallow: / 禁止搜狗爬虫访问

User-agent: * 禁止访问某个目录
Disallow: /cgi-bin/
Disallow: /Page/

允许百度抓取gif格式的图片,其它几种格式不允许。
User-agent: Baiduspider
Allow: .gif$
Disallow: .jpg$
Disallow: .jpeg$
Disallow: .png$
Disallow: .bmp$

测试
创建好robots文件后,大家可以在Google的管理员工具里测试一下,就可以知道是否正常工作。

高并发网站系统架构

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系 统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技 术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能 比拟的。

  大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。

  上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。
» Read more…

Jquery tab 选项卡 无刷新切换

这个jquery主要功能是:当点击导航按钮时无刷新切换你想要显示的内容,并且还带有淡入效果
下面介绍一下js代码:

 
$(document).ready(function() {
 
//默认情况下
$(".tab_content").hide(); //隐藏所有内容
$("ul.tabs li:first").addClass("active").show(); //显示第一个标签
$(".tab_content:first").show(); //显示第一个标签的内容
 
//点击情况下
$("ul.tabs li").click(function() {
$("ul.tabs li").removeClass("active"); //删除任何命名为"active"的class
$(this).addClass("active"); //添加名为"active"的class的标签
$(".tab_content").hide(); //隐藏所有标签的内容
var activeTab = $(this).find("a").attr("href"); //查找href属性值来确定当前标签+内容
$(activeTab).fadeIn(); //显示内容淡入效果
return false;
});
});

演示代码如:无刷新切换

ifconfig 命令详解

无论是Linux 自动安装还是我们手工安装,Linux 都会向你询问有关网络的问题并配置相关的软件。这个用于配置网卡的基本命令就是ifconfig。
在执行ifconfig 命令后,系统将在内核表中设置必要的参数,这样Linux 就知道如何与网络上的网卡通
信。ifconfig 命令有以下两种格式:

※ifconfig [interface]
※ifconfig interface [aftype] option | address …

ifconfig 的第一种格式(或使用不带任何参数的ifconfig 命令)可以用来查看当前系统的网络配置情况。
在刚刚安装完系统之后,实际上是在没有网卡或者网络连接的情况下使用Linux,但通过ifconfig 可以使用回绕方式工作,使计算机认为自己工作在网络上。
现在我们运行一下ifconfig 命令,不带参数的ifconfig 命令可以显示当前启动的网络接口,其输出结果
为:

[root@machine1 /sbin]#ifconfig
eth0 Link encap:Ethernet Hwaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0

» Read more…

用PHP将数组转为XML格式输出

在实现的开发工作中,常常会遇到用AJAX来取代原先Form提交的数据,返回一个值很简单,如果返回很多的时候就要用到数组了。下面我来用一个PHP类,来将获取到的数据用XML格式返回给页面。

首先说一点,这个类支持将一个多维数组转换为XML格式;
数组的index值将作为XML的节点名,数组每项的值将作为XML节点的内容。

PHP内建支持DOM对象,我们就通过DOM来操作XML
PHP创建DOM对象的语句是

$dom = new DOMDocument('1.0','utf-8');

创建一个DOM节点的语句是

$element = $dom->createElement($elementName);

给节点添加内容的语句是

$element->appendChild($dom->createTextNode($value));

最后将节点添加到DOM中

$dom->appendChild($element);

» Read more…

jQuery的几条技巧

jQuery代码简练、语义易懂、学习快速、文档丰富。
能将JS代码和HTML代码完全分离,便于代码和维护和修改。
下面总结的jQuery的几条技巧:

1、jQuery对象与dom对象的转换
只有jquery对象才能使用jquery定义的方法。注意dom对象和jquery对象是有区别的,调用方法时
要注意操作的是dom对象还是jquery对象。
普通的dom对象一般可以通过$()转换成jquery对象。
如:$(document.getElementById(“msg”))则为jquery对象,可以使用jquery的方法。
由于jquery对象本身是一个集合。所以如果jquery对象要转换为dom对象则必须取出其中的某一项,
一般可通过索引取出。
如:$(“#msg”)[0],$(“div”).eq(1)[0],$(“div”).get()[1],$(“td”)[5]这些都是
dom对象,可以使用dom中的方法,但不能再使用Jquery的方法。
以下几种写法都是正确的:

$("#msg").html();
$("#msg")[0].innerHTML;
$("#msg").eq(0)[0].innerHTML;
$("#msg").get(0).innerHTML;

2、如何获取jQuery集合的某一项
对 于获取的元素集合,获取其中的某一项(通过索引指定)可以使用eq或get(n)方法或者索引号
获取,要注意,eq返回的是jquery对象,而 get(n)和索引返回的是dom元素对象。对于jquery对
象只能使用jquery的方法,而dom对象只能使用dom的方法,如要获取第三 个

元素的内容。
有如下两种方法:
» Read more…

如何用CSS做三角形图片

.box1 {
    height:0;
    width:0;
    font-size:0;  /* IE兼容 */
    line-height:0px;  /* IE兼容 */
    border-color:#FF9600 transparent transparent transparent;
    border-style:solid dashed dashed dashed;  /* dashed是为IE6兼容 */
    border-width:55px;
}
.box3 {
    height:100px;
    width:100px;
    font-size:0;  /* IE兼容 */
    line-height:0px;  /* IE兼容 */
    border-color: red blue #FF9600 black;
    border-style: solid solid solid solid;  /* dashed是为IE6兼容 */
    border-width:30px;
}
<div id="box1" class="box1"></div><div class="box3"></div>

下面这张图片就是id等于box1的div的图片

下面这张图片就是id等于box3的div的图片

相关文章:http://www.nixiaofeng.com/263.html