重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
a) 框架。推荐jQuery,简单易用,我的第一web项目就是在w3school简单学习后,直接上手jQuery完成的,真的很难简单,很好用。jQuery适用环境有限,对于那些对性能要求很高的页面无法胜任。推荐了解一下 YUI 或百度的 tangram ,都很好用,学习方法也很简单,照着产品文档做几个页面就行了,不用面面俱到,以后遇到问题查文档就行了。框架可以帮你屏蔽浏览器的差异性,让你能更专注与web开发学习的精髓部分。
创新互联不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的成都网站设计、网站制作、外贸营销网站建设质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式成都全网营销推广需求,让再小的高端网站设计也能产生价值!
b) javascript 语言范式。这个名字可能并不恰当,只是我找不到可以描述“面向对象”,“函数式”这个两个概念的概念。javascript不完全是一个面向对象的语言,它的很多设计理念都有函数编程语言的影子,甚至说如果你不用面向对象,完全可以把它理解成一门函数式编程语言。javascript的很多语言特性,都是因为他具有函数是语言的特点才存在的。这部分推荐先学习面向对象的基本理论,对封装,继承,多态等概念要理解,维基百科,百度百科会是你的帮手,另外推荐《object oriented javascript》,应该有中文版。对与函数式编程我了解的也不系统,不好多说,可以自己百度一下。
c) javascript 语言内部机制。必须弄清如下概念:js中变量的作用域,变量传递方式,函数的定义环境与执行环境,闭包,函数的四种调用方式(一般函数,对象的方法,apply,call),以及四种调用方式下,‘this'指向的是谁。这部分内容你会在《javascript语言精粹》中详细了解。另外,你必须理解json。
d) dom编程,这个web前端工程师的核心技能之一。必读《dom编程艺术》,另外《高性能javascript》这本书中关于dom编程的部分讲的也很好。
e) ajax编程,这是另一核心技术。ajax建议在网上查些资料,了解这个概念的来龙去脉,百度百科,维基百科上的内容就足够了。真正编程是很容易的,如今几乎所有框架都对ajax有良好的封装,编程并不复杂。
f) 了解浏览器差异性。这部分包括css和js两部分,浏览器差异内容很多,建议在实践中多多积累。
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns="" xml:lang="zh" lang="zh" dir="ltr"
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
meta name="generator" content="MediaWiki 1.13.2" /
meta name="keywords" content="首页,About this site,Communication/zh,Conduct,Download,FC,Linux,Linux不是Windows/zh,Newcomer,Qref,Ubuntu" /
link rel="shortcut icon" href="/favicon.ico" /
link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="Ubuntu中文 (zh)" /
link rel="alternate" type="application/rss+xml" title="Ubuntu中文的RSS订阅" href=";feed=rss" /
link rel="alternate" type="application/atom+xml" title="Ubuntu中文的Atom订阅" href=";feed=atom" /
title首页 - Ubuntu中文/title
style type="text/css" media="screen,projection"/*![CDATA[*/ @import "/skins/ubuntuchina/main.css?164"; /*]]*//style
link rel="stylesheet" type="text/css" media="print" href="/skins/common/commonPrint.css?164" /
link rel="stylesheet" type="text/css" media="handheld" href="/skins/ubuntuchina/handheld.css?164" /
!--[if lt IE 5.5000]style type="text/css"@import "/skins/ubuntuchina/IE50Fixes.css?164";/style![endif]--
!--[if IE 5.5000]style type="text/css"@import "/skins/ubuntuchina/IE55Fixes.css?164";/style![endif]--
!--[if IE 6]style type="text/css"@import "/skins/ubuntuchina/IE60Fixes.css?164";/style![endif]--
!--[if IE 7]style type="text/css"@import "/skins/ubuntuchina/IE70Fixes.css?164";/style![endif]--
!--[if lt IE 7]script type="text/javascript" src="/skins/common/IEFixes.js?164"/script
meta http-equiv="imagetoolbar" content="no" /![endif]--
script type= "text/javascript"/*![CDATA[*/
var skin = "ubuntuchina";
var stylepath = "/skins";
var wgArticlePath = "/$1";
var wgScriptPath = "";
var wgScript = "/index.php";
var wgVariantArticlePath = false;
var wgActionPaths = [];
var wgServer = "";
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "首页";
var wgTitle = "首页";
var wgAction = "view";
var wgArticleId = "25476";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "zh-cn";
var wgContentLanguage = "zh";
var wgBreakFrames = false;
var wgCurRevisionId = "112804";
var wgVersion = "1.13.2";
var wgEnableAPI = true;
var wgEnableWriteAPI = false;
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
/*]]*//script
script type="text/javascript" src="/skins/common/wikibits.js?164"!-- wikibits js --/script
script type="text/javascript" src="/index.php?title=-action=rawgen=jsuseskin=ubuntuchina"!-- site js --/script
style type="text/css"/*![CDATA[*/
@import "/index.php?title=MediaWiki:Common.cssusemsgcache=yesaction=rawctype=text/csssmaxage=18000";
@import "/index.php?title=MediaWiki:Ubuntuchina.cssusemsgcache=yesaction=rawctype=text/csssmaxage=18000";
@import "/index.php?title=-action=rawgen=cssmaxage=18000useskin=ubuntuchina";
/*]]*//style
!-- Head Scripts --
脚本最初是从演艺界过来的,指表演戏剧、拍摄电影等所依据的底本或书稿的底本。
在计IT行业,脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序。
1、脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。
2、动态程序一般有两种实现方式,一是二进制方式,一是脚本方式。
二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令代码(如.exe文件),然后再执行。这种编译好的程序我们只能执行、使用,却看不到他的程序内容。
脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
扩展资料:
脚本(Script)实际上就是程序,一般都是有应用程序提供的编程语言。应用程序包括浏览器(javascript、VBScript)、多媒体创作工具,应用程序的宏和创作系统的批处理语言也可以归入脚本之类。
脚本同我们平时使用的VB、C语言的区别主要是:
脚本语法比较简单,比较容易掌握;脚本与应用程序密切相关,所以包括相对应用程序自身的功能;脚本一般不具备通用性,所能处理的问题范围有限。脚本就是源程序,就是代码程序。
常见的脚本语言有C Shell、JavaScript、Nuva、Perl、PHP、Python、Ruby、Tcl、VBScript、CSS。
参考资料:
百度百科词条-脚本语言
推荐使用mediawiki,资料附后。wiki建站专题站点可访问天下维客 ,有中文的wiki建站综述、具体过程、相关技术资料以及其他各种wiki程序的介绍等。
下面是节选的mediawiki资料:
MediaWiki全球最著名的开源wiki引擎,运行于PHP+MySQL环境。从2002年2月25日被作为维基百科全书的系统软件,并有大量其他应用实例。目前MediaWiki的开发得到维基媒体基金会的支持。
MeidaWiki一直保值着持续更新,当前最新版本为1.4.13(2006-1-5)和1.5.7(2006-3-2)稳定版本。MediaWiki的原作者为德国的Magnus Manske。
目录 [隐藏]
1 为什么要选择mediawiki来做wiki网站?
1.1 mediawiki的弱点
1.2 mediawiki系统特色
2 使用提示
3 版本
4 参考资料
4.1 下载网址
[编辑]为什么要选择mediawiki来做wiki网站?
经受过重量级应用的考验,功能丰富却架设简单。
全世界最大的wiki项目维基百科是使用mediawiki的成功范例,数据量、访问量都超级庞大
mediawiki的功能非常丰富,支持多语言版本,充分满足知识站点的需要
运行环境要求很低,架设过程简洁,即使新手也可以迅速建立自己的站点
最大的wiki程序社区:
mediawiki是目前应用最广的wiki程序,数以万计的网站在使用它,很容易找到范例站点
有大量的热心参与人员参与研究,资料多,容易找到互相交流的朋友。例如QQ群3680101(技术群)。
持续开发,程序特性功能不断完善,保证未来的支持
mediawiki是受到维基媒体基金会支持的开源项目,在功能、性能、安全方面将不断优化
[编辑]mediawiki的弱点
后台管理功能不是很完善,仅通过简单的特殊页面完成这些功能。
一般环境下,mediawiki的运行速度相对其他wiki程序要差很多。mediawiki的目标是为维基媒体项目服务,很多华丽的性能特征要在高端设备环境(多服务器,多数据库,反向缓冲squid服务器阵列,大量额外的PHP缓冲引擎)中才能体现。(参见[1])
在界面方面关注不够,导致外观美化的修改繁琐,甚至需要一定的技术背景
wiki引擎
wiki引擎主条目
wiki引擎的流行度
常见中文wiki引擎:
MediaWiki是最流行的Wiki引擎,支持多语种。用它做的网站数以十万计。
MoinMoin平实稳重,支持中文和多语种,插件丰富。Python环境。
PmWiki:无需数据库的小巧程序。架设简单,权限控制、插件扩展都不错。PHP环境。
TiddlyWiki:用javascript写成精巧程序。单一文件,但有出色的动态效果。
TWiki:基于Perl的企业级协作平台
CooCooWakka:早期的小型中文wiki引擎
[编辑]mediawiki系统特色
wiki的重要特征
记录所有的改动版本,能方便的查阅历史更新记录,这使得开放性编辑成为可能
自动产生链接,编辑文本中中括号中的内容(如“[[X条目]]”)将自动产生链接
允许使用模板,方便对相同内容的重复使用、更新
支持分类,并根据分类在不同的文章之间自动产生关联
允许每个用户自行选择系统外观
[编辑]使用提示
MediaWiki的站点架设问题请见mediawiki建站。
在Web开发中,JavaScript很重要,算法也很重要。下面整理了一下一些常见的算法在JavaScript下的实现,包括二分法、求字符串长度、数组去重、插入排序、选择排序、希尔排序、快速排序、冒泡法等等。仅仅是为了练手,不保证高效与美观,或许还有Bug,有时间再完善吧。
1.二分法:
function binary(items,value){
var startIndex=0,
stopIndex=items.length-1,
midlleIndex=(startIndex+stopIndex)1;
while(items[middleIndex]!=value startIndex
if(items[middleIndex]value){
stopIndex=middleIndex-1;
}else{
startIndex=middleIndex+1;
}
middleIndex=(startIndex+stopIndex)1;
}
return items[middleIndex]!=value ? false:true;
}
2.十六进制颜色值的随机生成:
function randomColor(){
var arrHex=["0","2","3","4","5","6","7","8","9","a","b","c","d"],
strHex="#",
index;
for(var i=0;i 6; i++){
index=Math.round(Math.random()*15);
strHex+=arrHex[index];
}
return strHex;
}
一个求字符串长度的方法:
function GetBytes(str){
var len=str.length,
bytes=len;
for(var i=0;i len;i++){
if(str.CharCodeAt255){
bytes++;
}
}
return bytes;
}
3.js实现数组去重:
Array.protype.delRepeat=function(){
var newArray=new Array();
var len=this.length;
for(var i=0;i len;i++){
for(var j=i+1;j len;j++)
{
if(this[i]==this[j])
{
++i;
}
}
newArray.push(this[i]);
}
return newArray;
}
4.插入排序。所谓的插入排序,就是将序列中的第一个元素看成一个有序的子序列,然后不段向后比较交换比较交换。
function insertSort(arr){
var key;
for(var j = 1; j arr.length ; j++){
//排好序的
var i = j - 1;
key = arr[j];
while(i = 0 arr[i] key){
arr[i + 1] = arr[i];
i --;
}
arr[i + 1] = key;
}
return arr;
}
5.选择排序。其实基本的思想就是从待排序的数组中选择最小或者最大的,放在起始位置,然后从剩下的数组中选择最小或者最大的排在这公司数的后面。
function selectionSort(data)
{
var i, j, min, temp , count=data.length;
for(i = 0; i count - 1; i++) {
/* find the minimum */
min = i;
for (j = i+1; j count; j++)
{
if (data[j] data[min])
{ min = j;}
}
/* swap data[i] and data[min] */
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
return data;
}
6.希尔排序,也称递减增量排序算法。其实说到底也是插入排序的变种。
function shellSort(array){
var stepArr = [1750, 701, 301, 132, 57, 23, 10, 4, 1]; //
reverse()在维基上看到这个最优的步长较小数组
var i = 0;
var stepArrLength = stepArr.length;
var len = array.length;
var len2 = parseInt(len/2);
for(;i stepArrLength; i++){
if(stepArr[i] len2){
continue;
}
stepSort(stepArr[i]);
}
// 排序一个步长
function stepSort(step){
//console.log(step) 使用的步长统计
var i = 0, j = 0, f, tem, key;
var stepLen = len%step 0 ? parseInt(len/step) + 1 : len/step;
for(;i step; i++){// 依次循环列
for(j=1;/*j stepLen */step * j + i len;
j++){//依次循环每列的每行
tem = f = step * j + i;
key = array[f];
while((tem-=step) = 0){// 依次向上查找
if(array[tem] key){
array[tem+step] = array[tem];
}else{
break;
}
}
array[tem + step ] = key;
}
}
}
return array;
}
7.快速排序。其实说到底快速排序算法就系对冒泡排序的一种改进,采用的就是算法理论中的分治递归的思想,说得明白点,它的做法就是:通过一趟排序将待排序的纪录分割成两部分,其中一部分的纪录值比另外一部分的纪录值要小,就可以继续分别对这两部分纪录进行排序;不段的递归实施上面两个操作,从而实现纪录值的排序。
function quickSort(arr,l,r){
if(l r){
var mid=arr[parseInt((l+r)/2)],i=l-1,j=r+1;
while(true){
while(arr[++i] mid);
while(arr[--j]mid);
if(i=j)break;
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
quickSort(arr,l,i-1);
quickSort(arr,j+1,r);
}
return arr;
}
8.冒泡法:
function bullSort(array){
var temp;
for(var i=0;i array.length;i++)
{
for(var j=array.length-1;j i;j--){
if(array[j] array[j-1])
{
temp = array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
return array;
}