關(guān)于JavaScript維基的信息
前端怎么學(xué)習(xí)javascript
a) 框架。推薦jQuery,簡單易用,我的第一web項目就是在w3school簡單學(xué)習(xí)后,直接上手jQuery完成的,真的很難簡單,很好用。jQuery適用環(huán)境有限,對于那些對性能要求很高的頁面無法勝任。推薦了解一下 YUI 或百度的 tangram ,都很好用,學(xué)習(xí)方法也很簡單,照著產(chǎn)品文檔做幾個頁面就行了,不用面面俱到,以后遇到問題查文檔就行了。框架可以幫你屏蔽瀏覽器的差異性,讓你能更專注與web開發(fā)學(xué)習(xí)的精髓部分。
創(chuàng)新互聯(lián)不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對營銷、技術(shù)、服務(wù)都有自己獨特見解,公司采取“創(chuàng)意+綜合+營銷”一體化的方式為您提供更專業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)質(zhì)量和服務(wù)品質(zhì),在得到用戶滿意的同時,也能得到同行業(yè)的專業(yè)認(rèn)可,能夠為行業(yè)創(chuàng)新發(fā)展助力。未來將繼續(xù)專注于技術(shù)創(chuàng)新,服務(wù)升級,滿足企業(yè)一站式成都全網(wǎng)營銷推廣需求,讓再小的高端網(wǎng)站設(shè)計也能產(chǎn)生價值!
b) javascript 語言范式。這個名字可能并不恰當(dāng),只是我找不到可以描述“面向?qū)ο蟆保昂瘮?shù)式”這個兩個概念的概念。javascript不完全是一個面向?qū)ο蟮恼Z言,它的很多設(shè)計理念都有函數(shù)編程語言的影子,甚至說如果你不用面向?qū)ο螅耆梢园阉斫獬梢婚T函數(shù)式編程語言。javascript的很多語言特性,都是因為他具有函數(shù)是語言的特點才存在的。這部分推薦先學(xué)習(xí)面向?qū)ο蟮幕纠碚摚瑢Ψ庋b,繼承,多態(tài)等概念要理解,維基百科,百度百科會是你的幫手,另外推薦《object oriented javascript》,應(yīng)該有中文版。對與函數(shù)式編程我了解的也不系統(tǒng),不好多說,可以自己百度一下。
c) javascript 語言內(nèi)部機制。必須弄清如下概念:js中變量的作用域,變量傳遞方式,函數(shù)的定義環(huán)境與執(zhí)行環(huán)境,閉包,函數(shù)的四種調(diào)用方式(一般函數(shù),對象的方法,apply,call),以及四種調(diào)用方式下,‘this'指向的是誰。這部分內(nèi)容你會在《javascript語言精粹》中詳細(xì)了解。另外,你必須理解json。
d) dom編程,這個web前端工程師的核心技能之一。必讀《dom編程藝術(shù)》,另外《高性能javascript》這本書中關(guān)于dom編程的部分講的也很好。
e) ajax編程,這是另一核心技術(shù)。ajax建議在網(wǎng)上查些資料,了解這個概念的來龍去脈,百度百科,維基百科上的內(nèi)容就足夠了。真正編程是很容易的,如今幾乎所有框架都對ajax有良好的封裝,編程并不復(fù)雜。
f) 了解瀏覽器差異性。這部分包括css和js兩部分,瀏覽器差異內(nèi)容很多,建議在實踐中多多積累。
求wiki網(wǎng)站的源碼
!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 --
什么是腳本?
腳本最初是從演藝界過來的,指表演戲劇、拍攝電影等所依據(jù)的底本或書稿的底本。
在計IT行業(yè),腳本語言又被稱為擴建的語言,或者動態(tài)語言,是一種編程語言,用來控制軟件應(yīng)用程序。
1、腳本(script)是使用一種特定的描述性語言,依據(jù)一定的格式編寫的可執(zhí)行文件,又稱作宏或批處理文件。腳本通常可以由應(yīng)用程序臨時調(diào)用并執(zhí)行。各類腳本目前被廣泛地應(yīng)用于網(wǎng)頁設(shè)計中,因為腳本不僅可以減小網(wǎng)頁的規(guī)模和提高網(wǎng)頁瀏覽速度,而且可以豐富網(wǎng)頁的表現(xiàn),如動畫、聲音等。
2、動態(tài)程序一般有兩種實現(xiàn)方式,一是二進制方式,一是腳本方式。
二進制方式是先將我們編寫的程序進行編譯,變成機器可識別的指令代碼(如.exe文件),然后再執(zhí)行。這種編譯好的程序我們只能執(zhí)行、使用,卻看不到他的程序內(nèi)容。
腳本簡單地說就是一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本打開查看、編輯),腳本程序在執(zhí)行時,是由系統(tǒng)的一個解釋器,將其一條條的翻譯成機器可識別的指令,并按程序順序執(zhí)行。因為腳本在執(zhí)行時多了一道翻譯的過程,所以它比二進制程序執(zhí)行效率要稍低一些。
擴展資料:
腳本(Script)實際上就是程序,一般都是有應(yīng)用程序提供的編程語言。應(yīng)用程序包括瀏覽器(javascript、VBScript)、多媒體創(chuàng)作工具,應(yīng)用程序的宏和創(chuàng)作系統(tǒng)的批處理語言也可以歸入腳本之類。
腳本同我們平時使用的VB、C語言的區(qū)別主要是:
腳本語法比較簡單,比較容易掌握;腳本與應(yīng)用程序密切相關(guān),所以包括相對應(yīng)用程序自身的功能;腳本一般不具備通用性,所能處理的問題范圍有限。腳本就是源程序,就是代碼程序。
常見的腳本語言有C Shell、JavaScript、Nuva、Perl、PHP、Python、Ruby、Tcl、VBScript、CSS。
參考資料:
百度百科詞條-腳本語言
哪里可以下載到WIKI系統(tǒng)?
推薦使用mediawiki,資料附后。wiki建站專題站點可訪問天下維客 ,有中文的wiki建站綜述、具體過程、相關(guān)技術(shù)資料以及其他各種wiki程序的介紹等。
下面是節(jié)選的mediawiki資料:
MediaWiki全球最著名的開源wiki引擎,運行于PHP+MySQL環(huán)境。從2002年2月25日被作為維基百科全書的系統(tǒng)軟件,并有大量其他應(yīng)用實例。目前MediaWiki的開發(fā)得到維基媒體基金會的支持。
MeidaWiki一直保值著持續(xù)更新,當(dāng)前最新版本為1.4.13(2006-1-5)和1.5.7(2006-3-2)穩(wěn)定版本。MediaWiki的原作者為德國的Magnus Manske。
目錄 [隱藏]
1 為什么要選擇mediawiki來做wiki網(wǎng)站?
1.1 mediawiki的弱點
1.2 mediawiki系統(tǒng)特色
2 使用提示
3 版本
4 參考資料
4.1 下載網(wǎng)址
[編輯]為什么要選擇mediawiki來做wiki網(wǎng)站?
經(jīng)受過重量級應(yīng)用的考驗,功能豐富卻架設(shè)簡單。
全世界最大的wiki項目維基百科是使用mediawiki的成功范例,數(shù)據(jù)量、訪問量都超級龐大
mediawiki的功能非常豐富,支持多語言版本,充分滿足知識站點的需要
運行環(huán)境要求很低,架設(shè)過程簡潔,即使新手也可以迅速建立自己的站點
最大的wiki程序社區(qū):
mediawiki是目前應(yīng)用最廣的wiki程序,數(shù)以萬計的網(wǎng)站在使用它,很容易找到范例站點
有大量的熱心參與人員參與研究,資料多,容易找到互相交流的朋友。例如QQ群3680101(技術(shù)群)。
持續(xù)開發(fā),程序特性功能不斷完善,保證未來的支持
mediawiki是受到維基媒體基金會支持的開源項目,在功能、性能、安全方面將不斷優(yōu)化
[編輯]mediawiki的弱點
后臺管理功能不是很完善,僅通過簡單的特殊頁面完成這些功能。
一般環(huán)境下,mediawiki的運行速度相對其他wiki程序要差很多。mediawiki的目標(biāo)是為維基媒體項目服務(wù),很多華麗的性能特征要在高端設(shè)備環(huán)境(多服務(wù)器,多數(shù)據(jù)庫,反向緩沖squid服務(wù)器陣列,大量額外的PHP緩沖引擎)中才能體現(xiàn)。(參見[1])
在界面方面關(guān)注不夠,導(dǎo)致外觀美化的修改繁瑣,甚至需要一定的技術(shù)背景
wiki引擎
wiki引擎主條目
wiki引擎的流行度
常見中文wiki引擎:
MediaWiki是最流行的Wiki引擎,支持多語種。用它做的網(wǎng)站數(shù)以十萬計。
MoinMoin平實穩(wěn)重,支持中文和多語種,插件豐富。Python環(huán)境。
PmWiki:無需數(shù)據(jù)庫的小巧程序。架設(shè)簡單,權(quán)限控制、插件擴展都不錯。PHP環(huán)境。
TiddlyWiki:用javascript寫成精巧程序。單一文件,但有出色的動態(tài)效果。
TWiki:基于Perl的企業(yè)級協(xié)作平臺
CooCooWakka:早期的小型中文wiki引擎
[編輯]mediawiki系統(tǒng)特色
wiki的重要特征
記錄所有的改動版本,能方便的查閱歷史更新記錄,這使得開放性編輯成為可能
自動產(chǎn)生鏈接,編輯文本中中括號中的內(nèi)容(如“[[X條目]]”)將自動產(chǎn)生鏈接
允許使用模板,方便對相同內(nèi)容的重復(fù)使用、更新
支持分類,并根據(jù)分類在不同的文章之間自動產(chǎn)生關(guān)聯(lián)
允許每個用戶自行選擇系統(tǒng)外觀
[編輯]使用提示
MediaWiki的站點架設(shè)問題請見mediawiki建站。
web前端javascript能實現(xiàn)什么算法或者計算
在Web開發(fā)中,JavaScript很重要,算法也很重要。下面整理了一下一些常見的算法在JavaScript下的實現(xiàn),包括二分法、求字符串長度、數(shù)組去重、插入排序、選擇排序、希爾排序、快速排序、冒泡法等等。僅僅是為了練手,不保證高效與美觀,或許還有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實現(xiàn)數(shù)組去重:
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.選擇排序。其實基本的思想就是從待排序的數(shù)組中選擇最小或者最大的,放在起始位置,然后從剩下的數(shù)組中選擇最小或者最大的排在這公司數(shù)的后面。
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()在維基上看到這個最優(yōu)的步長較小數(shù)組
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) 使用的步長統(tǒng)計
var i = 0, j = 0, f, tem, key;
var stepLen = len%step 0 ? parseInt(len/step) + 1 : len/step;
for(;i step; i++){// 依次循環(huán)列
for(j=1;/*j stepLen */step * j + i len;
j++){//依次循環(huán)每列的每行
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.快速排序。其實說到底快速排序算法就系對冒泡排序的一種改進,采用的就是算法理論中的分治遞歸的思想,說得明白點,它的做法就是:通過一趟排序?qū)⒋判虻募o(jì)錄分割成兩部分,其中一部分的紀(jì)錄值比另外一部分的紀(jì)錄值要小,就可以繼續(xù)分別對這兩部分紀(jì)錄進行排序;不段的遞歸實施上面兩個操作,從而實現(xiàn)紀(jì)錄值的排序。
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;
}
文章名稱:關(guān)于JavaScript維基的信息
分享URL:http://www.xueling.net.cn/article/dscipcd.html