jQuery学习

因为上课的原因 了解到jQuery比较强大 还有ms的asp.net ajax 于是决定开始学习ajax

找到了jQuery的中文入门教程 很不错,讲的东西很多、全面 ,正是我想要的。

开始了第一个著名的Hello world 例子,下载了 Starterkit 、jQuery

修改custom.js 调试出来竟然有错误。仔细看了 下代码 没错啊,怎么出不来呢

百思不得其解,查看错误发现,竟然提示缺少文件 ,再一看根目录,顿时,快要晕了,我竟然没把jQuery.js放在根目录下面,先汗一个。

我们需要一个jQuery的库,最新的下载可以到这里找到

下载初学者包:jQuery Starterkit

下面是在学习中做的笔记 这是我的custom.js


$(document).ready(function() {
// the first time
//hello world 演示点击链接弹出alert
$("a").click(function(){
//alert("Hello World!");
});
//orderedlist附加red样式
//$("#orderedlist").addClass("red");
//orderedlist的子节点添加样式
$("#orderedlist > li").addClass("blue");
//鼠标滑过最后一行 变绿
$("#orderedlist li:last").hover(function(){
$(this).addClass("green");
},function(){
$(this).removeClass("green");
});
//给orderlist结点的子节点内容添加内容
$("#orderedlist").find("li").each(function(i){
$(this).html($(this).html()+"BAM"+i);
});
//重置单个表单的内容
//$("#reset").click(function() {
//$("#testform")[0].reset();
//});
// 一次性重置对个表单
$("#reset").click(function() {
$("form").each(function() {
this.reset();
});
});
//选择所有li元素,去除了ul子元素 刷新浏览器后,所有的li元素都有了一个边框,只有ul子元素的那个li元素例外
$("li").not(":has(ul)").css("border", "1px solid black");//原文为$("li").not("[ul]").css("border", "1px solid black");
//css()样式用法 另外一个样式
//$("li").not("[ul]").css("border", "1px solid black").css("color","red");
//给所有带name属性的链接加一个背景色 不是很清楚
$("a[name]").css("background-color","#eee");
//进行部分匹配 href属性=#的发生事件
$("a[href*=#]").click(function() {//由于是部分匹配所以#、#bottom是一样的
//alert("href");
// do something with all links that point somewhere to /content/gallery
});
//选择器都用来选择子元素或者是过滤元素。另外还有一种情况是选择上一个或者下一个元素,比如一个FAQ的页面,答案首先会隐藏,当问题点击时,答案显示出来
$('#faq').find('dd').hide().end().find('dt').click(function() {//选择所有的dd元素全部隐藏起来 实现dt的点击事件
var answer = $(this).next();//选择下一个元素 找到dt下面紧接的一个dd元素
if (answer.is(':visible')) {
answer.slideUp("slow",function(){//上移弹出
alert("haha up")});
} else {
answer.slideDown("slow",function(){//下移弹出
alert("haha down")});
}
});
//移到文章某段的链接时,它所在的段全用上highlight样式,移走之后又恢复原样
$("a").hover(function() {
$(this).parents("p").addClass("highlight");
}, function() {
$(this).parents("p").removeClass("highlight");
});//hover(over, out)
//特效 show() hide()函数实现
//$("a").toggle(function() {
//    $(".stuff").hide('slow');
//}, function() {
//    $(".stuff").show('fast');
//});
//特效2
$("a").toggle(function() {
$(".stuff").animate({
height: 'hide',
opacity: 'hide'
}, 'slow');
}, function() {
$(".stuff").animate({
height: 'show',
opacity: 'show'
}, 'slow');
});
//这里还有一些比较好的特效
// generate markup //投票rate
//代码生成了5个链接,并将它们追加到id为"rating"容器中,当其中一个链接被点击时,该链接标明的分数就会以rating参数形式发送到rate.php,然后,结果将以XML形式会从服务器端传回来,添加到容器中,替代这些链接。
var ratingMarkup = ["Please rate: "];
for(var i=1; i <= 5; i++) {
ratingMarkup[ratingMarkup.length] = "<a href='#'>" + i + "</a> ";
}
// add markup to container and applier click handlers to anchors
$("#rating").append( ratingMarkup.join('') ).find("a").click(function(e) {
e.preventDefault();
// send requests
$.post("rate.php", {rating: $(this).html()}, function(xml) {
// format result
var result = [
"Thanks for rating, current average: ",
$("average", xml).text(),
", number of votes: ",
$("count", xml).text()
];
// output result
$("#rating").html(result.join(''));
} );
});
//点击表格的第一行head区域,你可以看到排序的效果,再次点击会按倒过来的顺序进行排列。
//$("#large").tableSorter();
$("#large").tableSorter({
stripingRowClass: ['odd','even'],    // Class names for striping supplyed as a array.
stripRowsOnStartUp: true        // Strip rows on tableSorter init.
});
//郁闷 不知道为什么我的排序插件就是弄不出来  难道排序插件跟上面的代码有冲突?
});

总结:

虽然教程内容比较少,但是花了一个下午的时间 效果不怎么明显 下次再继续学习jQuery的plugin 还有自己插件

很显然 教程只是JQuery中一小小部分 还有很多东西 必须掌握 像css、xpath的语法

大量的类似的CSSXPath例子,更多的例子和列表可以在这里找到

你可以在Visual jQuery找到全部的事件列表,在Events栏目下.

更多的AJAX方法可以从这里 找到,或者看看API文档 下面的AJAX filed under AJAX.

很多不错的效果可以访问interface plugin collection. 这个站点提供了很多demos和文档

关于排序插件的更多例子和文档可以在 tablesorter首页找到.

经常更新的插件列表可以从jQuery官方站 on the jQuery site找到.

三级网络

上学期报考的三级网络技术,先前准备在暑假复习复习,后来,唉,计划跟不上变化啊

2009年09月10日

有些重要的事情耽误了,导致计划完全破产。现在开学一个星期了,正在努力看教程在

每天基本是花了三个小时去看书,现在差不多已经看了一半的了。

准备看完教程把思维导图做出来。

2009年09月13日

时间已经不多了 昨天已经把重点的几章全部看完了 剩下Internet的几章还没看呢

在网上找到三级网络技术的笔记 呵呵 网络就是强大。

2009年09月18日

今天翘了一天的课,开始了一整天的复习  算是临阵磨枪吧 把所有笔试重点 全部看一遍,

网络技术基础、局域网基础、网络操作系统、Internet基础等等

晚上把全部的笔试中看完了,把机试的几个重点题型,copy出来,就去睡觉了

不过那是已经1点多了。

2009年09月19日 8:00

今天开始考试了,早上起得很早,7点就起来了

上了会qq,适当的改了下签名。不过现在已经不重要了

笔试的题目很一般化,相对比较来说没有08年4月的难,据我同学说比09年4月的还简单,不过想对我来说难度还是有的,毕竟复习时间太短了,不可能方方面面复习到,再说了,考试的知识点很琐碎,零星片段,很是烦人。

9点开考,差不多10左右我就做完了,剩下的就是不会做的了。很是痛苦,因为考的知识点我都没看过

经过一番痛苦的纠结,我提前15分钟交卷。

2009年09月19日 11:00
吃完饭,睡了一会觉 ,就起来开始做机试的题目了
题型很少就那么几个,主要的是for循环、选择排序、逻辑判断。就这几种了。
找了11个题目拿来来练手。从1点多 一直做到4点多,后来 直接去考试了。
运气很好,抽到一道、比较简单的题目。可惜,我后来发现我还做错了
大部分代码是正确的
只有一行代码的失误,但是导致结果跟正确答案是不一样的
据说,三级网络上机评分时根据是正确的代码行数/总的正确代码行数X100%。要是这样的话,兴许还过得了,
假如是电脑阅卷的话,那就不可能了。命运未卜。

OOP深入

以前只是在课堂学习过面向对象的技术,而在实际的编程时基本没有实践过的

呵呵 现在只好拣起来了 看看咯 oop详细解释见百度百科

面向对象:

封装
就是把类的内部隐藏起来
好处:减少耦合 ,类内部的实现可以自由地修改,类具有清晰的对外接口

数据隐藏
实现方法就是 访问限制修饰符
public
protected internal
internal
protected
private

继承性   inheritance
一个类可以有能力直接从另一个类获得其代码和数据
派生类从基类那里获得其所有的成员
C#只支持单继承
防止继承  public sealed class  classname

何时使用继承

代码重用,减少编写的代码量
设计重用 公用的字段和方法可以放到父类中,然后由其派生新的子类
子类有自己的字段和方法

多态性
是面向对象程序设计中的重要概念。
在运行时,可以通过指向基类的应用,来调用实现派生类中的方法。
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
多态性通过派生类覆写基类中的虚函数型方法来实现。

重载Overload 存在于同一类中
方法名必须相同
参数列表必须不相同
返回类型可以不相同

覆写Override 存在与继承关系的类中
只有虚方法和抽象方法才能覆写
相同的方法名称
相同的参数列表
相同的返回值类型

抽象方法 abstract
是必须被派生类覆写的方法
可以看成没有实现体的虚方法

虚函数
使用virtual关键字public virtual bool withdraw()

接口 interface
接口为类提供了蓝图
接口只提供定义
实现接口的数据类型必须提供接口成员的实现
接口本身可以从多个基接口派生

ps:

这里有一篇实例的OOP思想、工厂模式和重构

C#的接口

欧几里德算法及扩展

今天老师跟我们讲算法于程序设计了

嗯嗯  说到算法 就是有很多话说了 算法是计算机的基石、灵魂,李开复曾经写过一篇算法的力量

伟大的高德纳没错就是发明Tex的伟大科学家,写了 The Art of Computer Programming这又一经典的书籍

看得我们是仰望膜拜不已。现在 我终于又再一次回归到算法的源头来了 。是的源头。

大一曾经学习过算法,不过那不是学习,仅仅是在学习打字而已,把代码敲到电脑上去,然后debug,就这么简单,没有人告诉怎么样学习算法。现在 大多快忘光光了把 什么二叉树 快速选择 谁还会记得

没办法 现在只有捡起来了。继续算法研究,额,惭愧。。。

定理:gcd(a,b) = gcd(b,a mod b)

证明:a可以表示成a = kb + r,则r = a mod b
假设d是a,b的一个公约数,则有
d|a, d|b,而r = a – kb,因此d|r
因此d是(b,a mod b)的公约数

假设d 是(b,a mod b)的公约数,则
d | b , d |r ,但是a = kb +r
因此d也是(a,b)的公约数

因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证

欧几里德算法

根据这个原理来做的,其算法用C++语言描述为:


void swap(int & a, int & b){//交换数字大小
    int c = a;
    a = b;
    b = c;
}

int gcd(int a,int b){//取公约数
    if(0 == a ){//a不等于0
        return b;
    }

    if( 0 == b){//b不等于0
        return a;
    }

    if(a > b){//交换a,b的值
        swap(a,b);
    }

    int c;
    for(c = a % b ; c > 0 ; c = a % b){//for循环 初始条件c=a取b的模  结束条件 c=0
        a = b;
        b = c;
    }

    return b;
}

用Java实现代码:



package algorithm;
/**
 *<p>hibernate-tutorialDescription:欧几里德算法</p>
 *@version1.0.0
 *@CopyrightCopyright(c)2008
 */
public class MaxFeed{
    public int getnum(int m,int n){//获取两个数字
 int r=getleave(m,n);//这个是什么?
        while(r!=0){
            int[] s=swapnum(m,n,r);
            m=s[0];
            n=s[1];
            r=getleave(m,n);
        }
        return n;
    }
    /**
     *@paramm
     *@paramn
     *@return
     */
    private int getleave(int m,int n){//求余函数
        int r=m%n;
        return r;
    }
    /**
     *<p>comments:交换
     *          </p>
     *@paramm
     *@paramn
     *@paramr
     *@return
     */
    private int[] swapnum(int m,int n,int r){//什么意思
        m=n;
        n=r;
        int[] s=newint[2];
        s[0]=m;
        s[1]=n;
        return s;
    }
    /**
     *<p>comments:测试用例
     *          </p>
     *@paramargs
     */
    public static void main(String[] args){//主函数
        MaxFeed maxFeed=new MaxFeed();//实例化 嘿嘿
        int r=maxFeed.getnum(96,27);
        System.out.println("***********************************\n\n\n");
        System.out.println("                 "+r);
        System.out.println("***********************************");
    }
}
求n个整数的最大公约数,扩展:
#include <stdio.h>

void main()
{  int k,n;
 long a,b,c,r,m[100];
 printf("请输入整数个数n:");//输入原始数据
 scanf("%d",&n);
 printf("请依次输入%d个整数:",n);

 for(k=0;k<=n-1;k++)//循环输入正整数
 { printf("\n请输入第%d个整数: ",k+1);
 scanf("%ld",&m[k]);}

 b=m[0];
 for(k=1;k<=n-1;k++)//利用n-1次欧几里德算法
 {  a=m[k];
 if(a<b) {c=a;a=b;b=c;}//交换a  b
 r=a%b;
 while(r!=0)//判断终止条件
 { a=b;b=r;r=a%b;}
 }

 printf("%ld",m[0]);
 for(k=1;k<=n-1;k++)//输出结果
 printf(",%ld",m[k]);
 printf("的最大公约数是%ld",n);
}

网站被黑了

昨天在上传文件的时候突然发现服务器竟然多了一个从未见过的aspx文件夹

作为职业人士,专业的敏感的直觉告诉我有问题

果然,打开一看,竟然是最新的.net2.0的马儿,还好貌似没有拿下网站的webshell

把文件上传改成jpg的了,后来去信息楼了解到,ftp服务器密码 竟然登陆不上去。没办法 只好找老师解决问题了。

不过,首先得承认我的过错,暑假在家 一直在做事情,根本没有关注网站。

再者开学以后一直在攻克三级网络技术的考试,每天时间蛮紧,也没有时间查看网站的。

还好昨天在上传文件的时候发现了

今天发现更吐血的事了,先前做的一个小站被人XXOO了,郁闷。截图就不放上来了

强大的google有时候也是达摩克里斯之剑,可以拿来干的坏事,也不少啊。

查看了下是某国外著名黑客网站zone-h.org,这个自己想要看的话,可以看下面的介绍

据说曾经被中国黑客黑过,嘿嘿。

最近很是不太平,权威漏洞发布站点milw0rm.com开站了,听到这个消息,有些人很是兴奋。。。。

还有一些小道消息

下面有关马儿的介绍

ASPXspy2 介绍 还有

还有几个网络安全bolg

鬼仔’s Blog msnh4ck&晓华&晓华道士

有关zone-h.org的分析 被黑分析报告