在Javascript中,页面上的每一对<form>标记都解析为一个对象,即form对象。可以通过document.forms获取以源顺序排列的文档中所有form对象的集合。如果一个表单对象定义如下:<formname="frm1"method="post"action="login.aspx">获得该表单对象的方法:document.forms["frm1"];//根据name属性值document.forms[0];//根据索引号document.frm1;//直接根据name值获得对象form表单应该注意的属性el... 对于熟悉C/C++或Java语言的工程师来说,JavaScript显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中不必要的麻烦。而JavaScript代码是直接发送给客户浏览器的,直接与客户见面,编码的质量更应该受到关注。本文浅谈JavaScript编程中关于编码规范的问题,分析其中缘由。希望引起更多Web开发人员对JavaScript编码规范问题的关注和... 输入n,和k,问将n用1到k这k个数字进行拆分,有多少种拆分方法。例如:n=5,k=3则有n=3+2,n=3+1+1,n=2+1+1+1,n=2+2+1,n=1+1+1+1+1这5种拆分方法。这个题目是个比较明显的动态规划,如果想不到是背包问题,也可以写出状态转移方程如下。用a[i][j]表示考虑到用数j进行拼接时数字i的拼接方法,可以得到状态转移方程如下:a[i][j]=a[i][j-1]+a[i-j][j-1]+a[i-2j][j-1]+a[i-3j][j-1]…+a[0][j-1]意思很明显,就将j-1状态可以到达a[i][j]的状态的数字相加。由于得到的结果可... 插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i]又是排好序的序列。要达到这个目的,我们可以用顺序比较的方法。首先比较L[i]和L[i-1],如果L[i-1]≤L[i],则L[1..i]已排好序,第i遍处理就结束了;否则交换L[i]与L[i-1]的位置,继续比较L[i-1]和L[i-2],直到找到某一个位置j(1≤j≤i-1),使得L[j]≤L[j+1]时为止。图1演示了对4个元素进行插入排序的过程,共需要(a),(b),(c)三次插入。图对4个元素进行插入排序在下面的插... 在ajax兴起以前,很多人写JavaScript可以说都是毫无章法可言的,基本上是想到什么就写什么,就是一个接一个的函数function,遇到重复的还得copy,如果一不小心函数重名了,还真不知道从何开始查找错误,因为大家总是用面向过程的编程思想来写JavaScript代码,而且也由于网络上充斥了太多小“巧”的JavaScript代码段,很多都是随意而为,很不规范,这也就造成了大家对JavaScript的“误解”,一味的认为它就是一个辅助的小东东,而不适合做大的东西开发。但是自从ajax兴起后,大量的JavaScript代码编写要求人们具备像写Java类似的代码一样,能够面向对... 背包问题是在1978年由Merkel和Hellman提出的。它的主要思路是假定某人拥有大量物品,重量各不同。此人通过秘密地选择一部分物品并将它们放到背包中来加密消息。背包中的物品中重量是公开的,所有可能的物品也是公开的,但背包中的物品是保密的。附加一定的限制条件,给出重量,而要列出可能的物品,在计算上是不可实现的。背包问题是熟知的不可计算问题,背包体制以其加密,解密速度快而其人注目。但是,大多数一次背包体制均被破译了,因此现在很少有人使用它。P01:01背包问题题目:有N件物品和一个容量为V的背包。第i件物品的费用是c,价值是w。求解将哪些物品装入背包可使这些物品的... 链表逆序就是把一个链表按照原来的链接顺序逆序实现(也就是将头变成尾,尾变成头)。编程思路:其实最关键的是先通过原来的链接顺序找到下个节点,然后再把前个节点反序。链表的头节点如下:structListNode{void*m_nKey;ListNode*m_pNext;};常规实现:ListNode*ReverseIteratively(ListNode*pHead){ListNode*pReversedHead=NULL;ListNode*pNode=pHead;ListNode*pPrev=NULL;while(pN... CSS为一些特殊效果准备了特定的工具,我们称之为“伪类”。其中有几项是我们经常用到的,下面我们就详细介绍一下经常用于定义链接样式的四个伪类,它们分别是::link:visited:hover:active因为我们要定义链接样式,所以其中必不可少的就是超级链接中的锚标签--a,锚标签和伪类链接起来书写的方法就是定义链接样式的基础方法,它们的写法如下:a:link,定义正常链接的样式;a:visited,定义已访问过链接的样式;a:hover,定义鼠标悬浮在链接上时的样式;a:active,定义鼠标点击链接时的样式。示例:a:link{... 敏捷开发,AgileDevelopment,就是指能够在需求迅速变化的情况下快速开发软件。我们接触最多的和敏捷相关的名词是:极限编程(XP)、结对编程、测试驱动开发(TDD)等。追究敏捷的历史,就必须要提到著名的敏捷开发宣言,2001年,17位业界专家(其中包括我们非常熟悉的Martin,MartinFowler)组成了一个敏捷联盟,并且创建了一份敏捷联盟宣言,宣扬了4条核心价值观:Individualsandinteractionsoverprocessesandtools(人和交互重于过程和工具)Workingsoftwareovercompre...
JavaScript是门脚本语言,但好歹也是门语言,而且有强大特性的语言。JavaScript与Java有关系,不过只保留了基本关键字的相似,远不如C#与Java关系紧密。C#3.0以后,已经越来越不像Java了,越来越多的动态元素加入进来,JavaScript十几年前实现的,不断成了C#新版本的卖点。比如扩展方法,C#实现得很巧妙,但比起Javascript来,就显得别扭了。我们要扩展一个String类型的format方法,就可以,不必额外在一个静态类里写。String.prototype.format=function(){this.replace(/\... IT界的工资从统计意义上来说依然是“高薪”职业。之所以有苦,大体上是以下几个因素:由于国内收入水平限制和知识产权保护的不足,导致IT行业发展难以深入化和细分化,因此,程序员的同质现象很严重,高端程序员的需求较少;由于同质严重且门槛低,及现在大学生就业的困难,形成了大量的备胎。前面是狭窄的出路,后面是大量的备胎,因此才感觉到悲剧。不止是IT行业是这样,大部分行业都存在上面两个问题。房价的暴涨让很多人的心态变得浮躁不安。当人群有意无意的向天平高跷的一端走时,这一端会慢慢的压下,而另一端会缓慢的升起。就个人来说,就算是你突破了这些,你会真的快乐吗?生活到底是什... 站内短信很常见,比如系统需要发消息给用户,用户登录之后可以看到这些消息。Msg表,字段如下:idint自增长idsenderidint外键关联发送者idtitlevarchar(128)短信标题contentvarchar(512)短信内容createTimedatatime发信时间statustinyint发件箱中的状态:0--普通;1--删除一张user_has_msg表,字段如下:idintdepartmentidint部门群发的时候外键关联部门id,可以为空receverid... JavaSciprt事件中有两个很重要的特性:事件冒泡以及目标元素。当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。任何一个事件的目标元素都是最开始的那个元素,在我们的这个例子中也就是按钮,并且它在我们的元素对象中以属性的形式出现。使用事件代理的话我们可以把事件处理器添加到一个元素上,等待一个事件从它的子级元素里冒泡上来,并且可以很方便地得知这个事件是从哪个元素开始的。事件的冒泡和捕获捕获是从上级元素到下级元素,冒泡是从下级元素... 虽然简历都会有一些常规信息,但职业决定了这份简历核心内容和求职成败。所以,这份简历应该尽可能体现你自己是一个合格的前端工程师。毫无疑问,前端工程师应该知道如何用简历体现其专业技能和职业精神,这是每个应聘者应该考虑的问题。简历上需要有的内容个人信息姓名(必需)性别(必需)年龄(必需)联系电话(必需)学历及学位(必需)薪资期望个人照片邮箱Blog外语能力职业技能HTML、CSS、JavaScript/ActionScript等Web标准、可用性、可访问性一门非前端脚本的语言(Java、PHP、Pyt... 云计算的产生任何一项新的技术产生一定有其背景。现在我们就看看是哪些因素导致云计算的产生。假如你是一个程序员,希望创建新的网站。你会发现为了提供好的服务,你需要花巨资购买硬件,然后是巨资购买系统软件,再之后需要一个维护团队。我的一位朋友为了他的电子传真服务,投入70万的费用。当然这些仅仅是开始,一个网站还要考虑一个头痛的问题,某些服务比如电子商务,可能你的90%的业务就集中在某些大的节日。网址的访问有高峰,低峰,那么传统的网站可能就要以高峰时段的访问量来配置你的硬件设置,以免流失客户,在低峰时段,硬件的资源就处于闲置状态。同时网站还要保证系统的高的稳定性,无论洪水,地震,政治... 命名规范文件命名的原则:以最少的字母达到最容易理解的意义。如:.news_list{}、.search_form{}……一般文件及目录命名规范:每一个目录中应该包含一个缺省的html文件,文件名统一用index.htm。文件名称统一用小写的英文字母、数字和下划线的组合。尽量按单词的英语翻译为名称。例如:feedback(信息反馈),aboutus(关于我们)。文件使用英文字母、下划线、数字命名。例如:news_list.htm、news_mes.htm。注意若有多个同名文件时后加用数字,数字位数与文件个数成正比,不够的用0补齐。例如共有200条新闻,其中第18条命名为... 一个面试问题,关于数据库的设计。面试开始那位仁兄直接的说了他所面临的问题,公司数据库数据到达百万级别,以后可能会到达千万,需要一个好的设计人员对数据库进行优化设计,这里指的是不光设计符合功能需求,更加要符合性能需求,就是说数据库设计上面需要兼顾到效率。他给我出了一道题目,一个信息表,一个类别表。类别表中的类别成树形结构的,这个树可能会非常深,就是说类别会很多。信息表中有所有类别的信息。现在需要设计下类别表和信息表,使得信息表和类别表在查询的效率能够承受千万级别的数据。我用比较正常的思维去设计,类别表中有id,name,parentid。这时候他说如果以这种方式设... 博客里大量的图片会使页面加载速度变得缓慢。此时访问者需要用更多时间才能打开一个页面。不过我们可以通过缓存图片来解决这个问题。当页面第一次被加载时,将所有图片存放在浏览器的缓存池里。之后访问者再加载该页面时,浏览器就可以从浏览器缓存中获取图片,从而减少页面加载时间。对Apache服务器上的WordPress博客/网站,可以通过编辑根目录下的.htaccess文件来激活图片缓存功能。浏览器能够简单读取.htaccess文件的缓存控制头,而缓存头会要求浏览器将图片或其它任何媒体保留2周时间(或者更久),这样浏览器就能够随时调用图片,直到图片过期。两周后浏览器重新将过期的图片存入... 静态变量只存在于函数作用域内,也就是说,静态变量只存活在栈中。一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会。就是说,下次再调用这个函数的时候,该变量的值会保留下来。只要在变量前加上关键字static,该变量就成为静态变量了。<?phpfunctiontest(){static$nm=1;$nm=$nm*2;print$nm."<br/>";}//第一次执行,$nm=2test();//第一次执行,$nm=4test();//第一次执行,$nm=8test();?>程序运行... explode()函数介绍explode()函数可以把字符串分割为数组。语法:explode(separator,string,limit)。separator,必需。规定在哪里分割字符串。string,必需。要分割的字符串。limit,可选。规定所返回的数组元素的最大数目。本函数返回由字符串组成的数组,其中的每个元素都是由separator作为边界点分割出来的子字符串。separator参数不能是空字符串。如果separator为空字符串(""),explode()将返回FALSE。如果separator所包含的值在string中找不...