在专业角度,网站设计与平面设计是两套截然不同的路数。还有种片面的观点认为,做网站设计与平面差不多。在专业角度,网站设计与平面设计是两套截然不同的路数。比如很多艺术出身的设计师做网站时会发现,设计出来的作品总是被研发工程师否定,这个不能做,那个不好做。要想抹平这中间的隔阂,视觉设计师至少需要懂互联网,懂网站界面原理。软件设计传统软件设计包括系统分析、需求分析、模快划分等,产出主要是软件流程图和文档。要求系统分析员、高级程序员,或者软件架构师参与完成,要求参入人员水平较高。而编程就是依据设计结果,用选定语言来编码,一般熟悉选定语言的初级、中级程序员就可以胜任。也就... 插入排序(InsertionSort),选择排序(SelectionSort),冒泡排序和快速排序是我们经常会用到的排序算法。下面是这几种算法的基本思想和相对应的PHP实现代码。插入排序(InsertionSort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。//插入排序(一维数组)functioninsert_sort($arr){$count=count($arr);for($i=1;$i<$count;$i++){$tmp=$arr[$i];$j=$i-1;while($... Javascript本身并不支持面向对象,它没有访问控制符,它没有定义类的关键字class,它没有支持继承的extend或冒号,它也没有用来支持虚函数的virtual,不过,Javascript是一门灵活的语言,下面我们就看看没有关键字class的Javascript如何实现类定义,并创建对象。定义类并创建类的实例对象在Javascript中,我们用function来定义类,如下:functionShape(){varx=1;vary=2;}你或许会说,疑?这个不是定义函数吗?没错,这个是定义函数,我们定义了一个Shape函数,并对x和y进行了初始化。不... 在javascript中,对象实际上就是一个哈希表,比如下面这个user对象:functionuser(n,a){this.name=n;this.age=a;this.toString=function(){return"Name:"+this.name+",Age:"+this.age;}}varu=newuser("tom",18);for(varkinu){alert('key:'+k+',value:'+u[k]);}稍作改动,使用Array对象来代替对象:varuser=newArray();user["name"]="tom"... 前几天,我才知道有一种简化的数据交换格式,叫做yaml。我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开。它说,从结构上看,所有的数据最终都可以分成三种类型:第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称... 应该有很多人已经知道破窗效应这个社会学(犯罪学)的词语,破窗效应最先由社会学家JamesQ.Wilson和GeorgeL.Kelling在一篇名为《BrokenWindows》的文章中提出:"一个房子如果窗户破了,没有人去修补,隔不久,其它的窗户也会莫名其妙地被人打破;一面墙,如果出现一些涂鸦没有被清洗掉,很快的,墙上就布满了乱七八糟、不堪入目的东西;一个很干净的地方,人们不好意思丢垃圾,但是一旦地上有垃圾出现之后,人就会毫不犹疑地抛,丝毫不觉羞愧。"我们一直在喊敏捷开发,其实敏捷开发的一个很重要的目的就是消除浪费,防止破窗效应的发生。事情太难,就让它简单,更简单。流... 顾名思义,MySQLQueryCache就是用来缓存和Query相关的数据的。具体来说,QueryCache缓存了我们客户端提交给MySQL的SELECT语句以及该语句的结果集。大概来讲,就是将SELECT语句和语句的结果做了一个HASH映射关系然后保存在一定的内存区域中。在大部分的MySQL分发版本中,QueryCache功能默认都是打开的,我们可以通过调整MySQLServer的参数选项打开该功能。主要由以下5个参数构成:query_cache_limit:允许Cache的单条Query结果集的最大容量,默认是1MB,超过此参数设置的Query结果集将不会被... 执行数据库查询时,有完整查询和模糊查询之分。一般模糊语句如下:SELECT字段FROM表WHERE某字段Like条件其中关于条件,SQL提供了四种匹配模式:%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请运用两个百分号(%%)表示。比如SELECT*FROM[user]WHEREu_nameLIKE'%三%'将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。另外,如果须要找出u_name中既有“三”又有“猫”的记录,请运用and条件SELECT*FROM[u...
什么是快乐的程序员呢?就是把编程当作兴趣和爱好的人,享受着编程的快乐的一群人。优秀的程序员都是从快乐的程序员开始的。因为,成为优秀的程序员是需要很长时间的磨练的,如果在编程中连快乐都没有,很难熬到优秀程序员的。事实上,做任何事情只要找到了快乐,成功是迟早的事情。我们每一个程序员都希望在快乐的编程中成长为一名优秀的程序员。什么是优秀的程序员先讲一个编程大师的传说:传说在很久很久以前,软件界出过一位大师。他能直接用二进制编写复杂高效且无错的程序;他写过的机器码比我们吃过的米还要多;他用眼睛看看闪烁的硬盘灯就知道程序当前的运行状态;他用耳朵听听机器的噪音就可以准确地... 我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去买些价格不菲的诸如C#,VB.Net这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web学院”。96,97级的不少大学生都去做Web了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远的。几个误区初学者对C#风潮的追赶... 一些年轻的程序员会迷惘,将来的路应该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功。到底选哪条路,取决于自己的兴趣。可能有程序员会问:如果还没找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。当你积累了一定的技术和经验之后,就会面临多种选择。选择哪条路,因人而异。如果对某一种或几种技术非常感兴趣,并且能够持续钻研,经过一定时期的积累,你可以逐渐成长为专家级程序员。专家级程序员对于所掌握的专业技术的熟练程度非一般程序员能及,各类常见编程问题在他们手中都能迎刃而解,可以说这类专家“越老越值钱”但是这类专家也有一定的风险性:随着经验的增加和年龄的增长,这... 编程的陷阱(gotcha)是指计算机系统中的意想不到的文档特征而不是bug。这些陷阱使得初学者远离javascript编程。在我看来,因为所有的浏览器都能运行javascript使得它是使用最广泛的语言之一,但它也是最少人研究的。让我们从一个基础的示例开始。浮点运算这可能是挫败一些对javascript不熟悉并准备执行一些数学运算的人的主要原因。<script>alert(0.02/0.1);//0.19999999999999998alert(1.14*100);//113.99999999999999;)</script>Math.roun... 上个星期在客户交流会上,一位老板问问我为什么正规的网站设计都至少要两千元以上,最高有的甚至上万,可是很多网站服务商报价却很便宜,一千多块,甚至几百块,为什么一个行业有如此悬殊的报价,便宜的到底便宜在哪里?在这里归纳几点希望可以抛砖引玉,希望大家对网站建设价格差异有所了解。首先,网站功能不同价格肯定也不同,复杂的价格自然很高,简单的自然就低。然后同一功能复杂程度的网站为什么价格那么便宜,到底便宜在哪里?下面我们来分析一下主要便宜因素:便宜在使用通用模板,花一天的工时找一些同行业网站模板,改些图片,甚至只改个名称、地址就交货,收你800,你肯定觉得便宜超...
Ajax到底是什么?是一个并不太容易掌握,但可以增加网站交互性的方法?是Web2.0的基石?还是又一轮网络开发中的跟风?就像以前流行过的闪烁字体、“溅水”页(译者:Splashpage-Flash动画或大图片做的网站的简介首页,往往有个“跳过简介”或“直接进入”的小按钮)、和使用圆角,只是这次动态性更强?让我们看看有关Ajax的几个误区,拨开迷雾、发掘真相。误区一:AJAX是AsynchronousJavaScriptandXML的缩写。你写这个词时,应该用大写字母拼写,要不就显得很无知。事实上,根据Ajax这个词的创造者JesseJames的介绍,Ajax可不仅仅是... 之前写的一篇Ajax随机刷新文字中,还有些不足的地方,那时是用如下算法来实现隔一段时间从服务器取值的:varsecs=300;//倒计时的秒数functiondoUpdate(num){if(num%3==0){saveUserInfo();}}for(vari=secs;i>=0;i--){window.setTimeout("doUpdate("+i+")",(secs-i)*1000);}就是用倒计时的原理,每当变量secs能够整除3,就执行saveUserInfo()函数,以实现每三秒从服务器获取一次值。但这么做首先是不高效... Up-and-comingWebdeveloperstypicallyaskthesamequestions.Whatprogramminglanguagesareimportanttoknow?Whatisagoodentrylevelsalary?ShouldIexpectpaidtrainingfrommyemployer?HowdoIestimateanewproject?Althoughtheseareimportantquestions,thereisoftenalackofinterestinlessonslearnedbyotherdevelopers.Gener... //写cookies函数functionSetCookie(name,value)//两个参数,一个是cookie的名子,一个是值{varDays=30;//此cookie将被保存30天varexp=newDate();//newDate("December31,9998");exp.setTime(exp.getTime()+Days*24*60*60*1000);document.cookie=name+"="+escape(value)+";expires="+exp.toGMTString();}functiongetCookie(name)//取coo... Event属性和方法:type:事件的类型,如onlick中的click;srcElement/target:事件源,就是发生事件的元素;button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;(firefox中0代表左键,1代表中间键,2代表右键)clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和c...
在之前文章中,介绍了PHP中header()函数的一些情况,这里再补充一下吧。下面是关于header函数的详细使用说明:不管页面有多少header,它会执行最后一个,不过是有条件的,例如:header('Location:http://www.goorder.net');header('Location:http://www.g.cn');header('Location:http://www.baidu.com');这个就会跳到百度header函数的作用PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器具体怎么处理这个页面,至于传... 做网站的时候,很多地方都是由表单提交组成的,但是有提交的地方都要有验证。客户端验证最简单的方法就是使用JS自定义函数。这个文档包含平时常用的28个验证函数,还有验证函数几种使用方法。JS验证函数的调用方法需要注意以下几点:给表单设置onsubmit="returntest()",配合<inputtype="submit"name="Submit"value="check">进行提交。<inputtype=textdown="test();">当鼠标按下直接调用函数验证。<inputtype=textonblur="testl(thi...