仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 758|回复: 9
打印 上一主题 下一主题

[学习教程] ASP教程之词语搭配游戏的制造(ASP)(1)

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:56:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;申明:
这是个关于词语搭配的游戏,是用ASP、VBScript和JavaScript写的。
在本机Win98OEM2、PWS、IE5下测试下没发明年夜成绩。</p>
利用办法:
办法一:例如说你的3W服务的目次是C:Inetpubwwwroot,鄙人面建一个目次,如wordAsb;
将游戏文件(wordAsb.asp)拷进目次中;在IE的地点栏中键进http://+你的呆板名+/wordAsb/wordAsb.asp
或http://127.0.0.1/wordAsb/wordAsb.asp,回车,就能够入手下手游戏了
办法二:将游戏文件(wordAsb.asp)任意拷进一新建的目次。鼠标右键点击该目次,菜单当选“属性”,
点“WebSharing”属性页,点选“Sharethisfolder”项,点“OK”就能够了。
在IE的地点栏中键进http://+你的呆板名+/新建目次的称号/wordAsb.asp
或http://127.0.0.1/+新建目次的称号+/wordAsb.asp,回车,就能够入手下手游戏了
注:您的机子OS应当是NT或Win2000Server或其他OS可是装有PWS
游戏办法:
单击游戏中的“游戏申明”就晓得了;
假如偶然页面一片空缺,请按F5革新一遍(这也是今朝最年夜的bug吧),不知为何
代码以下:

--------------------------------------------------------------------------------
<%@Language=VBScript%>
<%
OptionExplicit
LastUpdatedByReconOn03/16/2001
Dimm_iPartCnt
Dimm_strPrompt
Dimm_astrSenPart(),m_astrFileName()
Dimm_astrWords(),m_aiOpStatus()
------------------------------------------
常变量申明
m_iPartCnt:辞汇分类的数量。整型
m_strPrompt:对文件操纵终了后的提醒。字符串型
m_astrSenPart:辞汇分类的称号。字符型数组
m_astrFileName:纪录各种辞汇文件的文件名。字符型数组
m_astrWords:记录各种辞汇。二维字符型数组
m_aiOpStatus:记录对各个文件操纵后的形态。整型数组
------------------------------------------
ShowMethod
m_iPartCnt=4
m_strPrompt=""
ReDimm_astrSenPart(m_iPartCnt)
ReDimm_astrFileName(m_iPartCnt)
ReDimm_astrWords(m_iPartCnt)
ReDimm_aiOpStatus(m_iPartCnt)
界说各类辞汇分类的称号
m_astrSenPart(0)="主语"
m_astrSenPart(1)="水平状语"
m_astrSenPart(2)="地址状语"
m_astrSenPart(3)="谓语"
界说纪录各种辞汇文件的称号
m_astrFileName(0)="Who.txt"
m_astrFileName(1)="How.txt"
m_astrFileName(2)="Where.txt"
m_astrFileName(3)="What.txt"
IfRequest.ServerVariables("REQUEST_METHOD")="POST"Then
假如页面的哀求体例是POST

************************
取得客户真个信息
************************
Dimm_iSenPart
Dimm_strOpWay
Dimm_bRptedData

------------------------------------------
常变量申明
m_iSenPart:暗示辞汇分类的数字。整型
辞汇的分类来自数组m_astrSenPart
大概的值有:
0:主语
1:水平状语
2:地址状语
3:谓语
m_strOpWay:文件操纵体例。字符串型
大概的值有:
1、SAVE:将某类辞汇存进文件
2、SAVEALL:将一切种别的辞汇存进文件
3、LOAD:从文件中载进某类辞汇
4、LOADALL:从文件中载进一切种别的辞汇

m_bRptedData:暗示本次提交的表双数据和前次是不是不异。布尔型
大概的值有:
1、False:表双数据不反复
2、True:表双数据反复(即反复提交表单)
------------------------------------------

ShowForm
取得用户哀求的操纵体例
m_strOpWay=Request.Form("txtOpWay")
Show("m_strOpWay")
取得各个种别的单词
Form_iCount=0To(m_iPartCnt-1)
IfRequest.Form("txtWords"&m_iCount)""Then
m_astrWords(m_iCount)=Split(Request.Form("txtWords"&m_iCount),",")
EndIf
Response.WriteUBound(m_astrWords(m_iCount))&"<br>"
Next

检测是不是反复提交表单
IfSession("FormInf")=Request.FormThen
表单是反复提交
m_bRptedData=True
Else
表单长短反复提交
Session("FormInf")=Request.Form
m_bRptedData=False
EndIf
Show("m_bRptedData")
************************
对单词文件举行操纵
************************
Ifm_bRptedData=FalseThen

Dimm_iCount,m_iErrCnt
Dimm_strFilePath

------------------------------------------
常变量申明
m_iCount:计数器。整型
m_iErrCnt:产生操纵失利的次数。整型
m_strFilePath:纪录各种辞汇文件的路径。字符串型
------------------------------------------

取得安排辞汇文件的路径
m_strFilePath=Request.ServerVariables("PATH_TRANSLATED")
m_strFilePath=Left(m_strFilePath,InStrRev(m_strFilePath,""))
m_strFilePath=m_strFilePath&"Words"
Show("m_strFilePath")

入手下手操纵文件
Response.Write"BegintoOperateWordFiles<br>"
SelectCasem_strOpWay
Case"SAVE"
保留单词到文件中
m_iSenPart=CInt(Request.Form("txtSenPart"))
m_aiOpStatus(m_iSenPart)=SaveFile(m_iSenPart)

依据操纵形态,失掉提醒信息
SelectCasem_aiOpStatus(m_iSenPart)
Case0
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分单词已乐成地被保留到文件中"

Case1
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分文件保留失利"
EndSelect

Case"SAVEALL"
保留一切种别的单词到文件中
m_iErrCnt=0
Form_iCount=0To(m_iPartCnt-1)
m_aiOpStatus(m_iCount)=SaveFile(m_iCount)
Ifm_aiOpStatus(m_iCount)=1Then
m_iErrCnt=m_iErrCnt+1
EndIf
Next
依据操纵形态,失掉提醒信息
SelectCasem_iErrCnt
Case0
m_strPrompt="一切种别的单词都已乐成地被保留到文件中"

Casem_iPartCnt
m_strPrompt="一切种别的单词文件都保留失利"

CaseElse
m_strPrompt="个中,"
Form_iCount=0To(m_iPartCnt-1)
Ifm_aiOpStatus(m_iCount)=1Then
m_strPrompt=m_strPrompt&"["&m_astrSenPart(m_iCount)&"]、"
EndIf
Next
m_strPrompt=Left(m_strPrompt,Len(m_strPrompt)-1)
m_strPrompt=m_strPrompt&"部分文件保留失利"
EndSelect

Case"LOAD"
从文件中载进单词
m_iSenPart=CInt(Request.Form("txtSenPart"))
m_aiOpStatus(m_iSenPart)=LoadFile(m_iSenPart)

依据操纵形态,失掉提醒信息
SelectCasem_aiOpStatus(m_iSenPart)
Case0
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分单词已乐成地被载进"

Case1
m_strPrompt="["&m_astrSenPart(m_iSenPart)&"]部分文件不存在,载进失利"
EndSelect

Case"LOADALL"
从各个文件中载进单词
m_iErrCnt=0
Form_iCount=0To(m_iPartCnt-1)
m_aiOpStatus(m_iCount)=LoadFile(m_iCount)
Ifm_aiOpStatus(m_iCount)=1Then
m_iErrCnt=m_iErrCnt+1
EndIf
Next

依据操纵形态,失掉提醒信息
SelectCasem_iErrCnt
Case0
m_strPrompt="一切种别的单词都已乐成地被载进"

Casem_iPartCnt
m_strPrompt="一切种别的单词文件都不存在,载进完整失利"
CaseElse
m_strPrompt="个中,"
Form_iCount=0To(m_iPartCnt-1)
Ifm_aiOpStatus(m_iCount)=1Then
m_strPrompt=m_strPrompt&"["&m_astrSenPart(m_iCount)&"]、"
EndIf
Next
m_strPrompt=Left(m_strPrompt,Len(m_strPrompt)-1)
m_strPrompt=m_strPrompt&"部分文件不存在,载进部分失利"
EndSelect
EndSelect

EndIf
EndIf
Response.Write"EndtoOperateWordFiles<br>"
Response.Write"BegintoWriteClientPage<br>"
%>
<html>
<head>
<title>词语搭配游戏</title>
<metaname="Generator"content="EditPlus">
<metaname="Author"content="">
<metaname="Keywords"content="">
<metaname="Description"content="">
<!--作风表-->
<style>
<!--
/*英笔墨体1*/
.fontEng1
{
font-family:TIMESNEWROMAN;
font-style:;
}
/*英笔墨体2*/
.fontEng2
{
font-family:TIMESNEWROMAN;
font-style:ITALIC;
}
/*夸大字体*/
.fontEmp
{
color:RED;
}
/*链接*/
.link
{
font-family:TIMESNEWROMAN;
font-style:ITALIC;
text-decoration:NONE;
}
/*被显现的单词列表*/
.listShown
{
position:ABSOLUTE;
width:140px;
height:200px;
display:INLINE;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被埋没的单词列表*/
.listHidden
{
position:ABSOLUTE;
width:140px;
height:200px;
display:NONE;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被流动的单词列表*/
.listFixed
{
position:ABSOLUTE;
width:140px;
height:200px;
display:INLINE;
border:RED1pxSOLID;
background-color:GAINSBORO;
}
/*被显现的匡助列表*/
.helpShown
{
position:ABSOLUTE;
width:;
height:;
display:block;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被埋没的匡助列表*/
.helpHidden
{
position:ABSOLUTE;
width:;
height:;
display:NONE;
border:LIGHTCORAL1pxSOLID;
background-color:GAINSBORO;
}
/*被流动的匡助列表*/
.helpFixed
{
position:ABSOLUTE;
width:;
height:;
display:block;
border:RED1pxSOLID;
background-color:GAINSBORO;
}
/*被夸大显现的标签*/
.lblMOver
{
text-decoration:NONE;
color:LIGHTCORAL;
background-color:;
}
/*一般显现的标签*/
.lblMOut
{
text-decoration:NONE;
color:;
background-color:;
}
/*被点击过的标签*/
.lblClicked
{
text-decoration:UNDERLINE;
color:RED;
background-color:;
}
/*高亮显现的按钮*/
.btnLighted
{
width:105px;
color:BLUE;
background-color:;
}
/*一般显现的按钮*/
.btnDelighted
{
width:105px;
color:;
background-color:;
}
/*高亮显现的单词列表项*/
.optLighted
{
text-decoration:UNDERLINE;
color:BLUE;
background-color:;
cursor:HAND;
}
/*一般显现的单词列表项*/
.optDelighted
{
text-decoration:NONE;
color:;
background-color:;
cursor:;
}
-->
</style>
<!--客户端剧本-->
<scriptlanguage="JavaScript">
<!--
//客户端公用及测试函数
//************************
//函数名:lTrim
//功效:往失落字串右边的空格
//输出:1、strTemp:要规整的字串。字符串型
//输入:规整后的字串。字符串型
//************************
functionlTrim(strTemp)
{
variCount,iLength;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iLength:字串的长度。整型
//------------------------------------------
iLength=strTemp.length;
for(iCount=0;iCount<iLength;iCount++)
if(strTemp.charAt(iCount)!="")
returnstrTemp.substring(iCount,iLength);

return"";
}
//************************
//函数名:rTrim
//功效:往失落字串右侧的空格
//输出:1、strTemp:要规整的字串。字符串型
//输入:规整后的字串。字符串型
//************************
functionrTrim(strTemp)
{
variCount,iLength;
//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iLength:字串的长度。整型
//------------------------------------------
iLength=strTemp.length;
for(iCount=iLength-1;iCount>=0;iCount--)
if(strTemp.charAt(iCount)!="")
returnstrTemp.substring(0,iCount+1);

return"";
}
//************************
//函数名:trim
//功效:往失落字串双方的空格
//输出:1、strTemp:要规整的字串。字符串型
//输入:规整后的字串。字符串型
//************************
functiontrim(strTemp)
{
returnrTrim(lTrim(strTemp));
}
//将2位数字转换成2位数字字串
//************************
//函数名:get2bNumStr
//功效:转换2位的数字成2位的数字字串
//输出:1、iNumber:要转换的数字。整型
//输入:转换后失掉的数字字串。整型
//************************
functionget2bNumStr(iNumber)
{
varstr2bNum;
//------------------------------------------
//常变量申明
//str2bNum:数字字串。字符串型
//------------------------------------------
if(parseInt(iNumber)<10)
str2bNum="0"+iNumber;
else
str2bNum=""+iNumber;

returnstr2bNum;
}
//************************
//函数名:assignFunc
//功效:指定元素的事务处置函数
//输出:1、ele:要指定事务处置函数的元素。工具型
//2、func:事务处置函数。函数型
//3、event:事务范例。字符串型
//输入:无
//************************
functionassignFunc(ele,func,event)
{
variCount,iEleCount;
varstrEvent;

//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iEleCount:同名元素汇合中元素的个数。整型
//strEvent:事务范例。字符串型
//------------------------------------------
if(event==null)
strEvent="onclick";
else
strEvent=event;

iEleCount=ele.length;
if(iEleCount==undefined)
eval("ele."+strEvent+"="+func);
else
for(iCount=0;iCount<iEleCount;iCount++)
eval("ele[iCount]."+strEvent+"="+func);
}
//************************
//函数名:getEleIndex
//功效:失掉产生事务的元素在同名汇合中的索引
//输出:1、eleSrc:产生事务的元素。工具型
//输入:产生事务的元素在同名汇合中的索引
//************************
functiongetEleIndex(eleSrc)
{
varcolSrc;
variCount,iEleCount;

//------------------------------------------
//常变量申明
//colSrc:同名元素汇合。工具型数组
//iCount:计数器。整型
//iEleCount:同名元素汇合中元素的个数。整型
//------------------------------------------
colSrc=eval(eleSrc.id);
iEleCount=colSrc.length;
for(iCount=0;iCount<iEleCount;iCount++)
{
if(colSrc[iCount]==eleSrc)
returniCount;
}
return-1;
}
//显现常变量的值(调试用)
//!筹办删往
functionshow(strDef1,strDef2,strDef3,strDef4)
{
variCount,iDefCnt;
varstrShow,strTemp;

iDefCnt=4;
strShow="[常变量值]";
for(iCount=1;iCount<=iDefCnt;iCount++)
{
strTemp=eval("strDef"+iCount);
if(strTemp!=undefined&&strTemp!=null)
strShow+="
"+strTemp+":"+eval(strTemp);
}

alert(strShow);
}
//************************
//函数名:showArray
//功效:显现一维数组的元素(调试用)
//输出:1、array:要显现的一维数组。数组
//输入:无
//************************
functionshowArray(array)
{
variCount,iEleCount;
varstrShow;

//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iEleCount:数组元素的个数。整型
//strShow:数组元素值组成的字串。字符串型
//------------------------------------------
iEleCount=array.length;
strShow="ArrayLength:"+iEleCount;
strShow+="
---------------------------------
";

for(iCount=0;iCount<iEleCount;iCount++)
{
if(typeof(array[iCount])=="object")
strShow+=array[iCount].id+"";
else
strShow+=array[iCount]+"";
}

alert(strShow);
}
//************************
//函数名:show2DArray
//功效:显现二维数组的元素(调试用)
//输出:1、array:要显现的二维数组。数组
//输入:无
//************************
functionshow2DArray(array)
{
variX,iY,iLen1,iLen2;
varstrShow;

//------------------------------------------
//常变量申明
//iX:计数器。整型
//iY:计数器。整型
//iLen1:数组一维的数量。整型
//iLen2:数组二维的数量。整型
//strShow:数组元素值组成的字串。字符串型
//------------------------------------------
iLen1=array.length;
strShow="Array1DLength:"+iLen1;
strShow+="
---------------------------------";

for(iX=0;iX<iLen1;iX++)
{
strShow+="
";
iLen2=array[iX].length;
for(iY=0;iY<iLen2;iY++)
strShow+=array[iX][iY]+"";
}

alert(strShow);
}
//-->
</script>
<scriptlanguage="JavaScript">
<!--
//--------------------函数列表--------------------------
//window_onload
//
//getWord
//reset
//save
//load
//
//showList
//hideList
//fixList
//valueList
//
//showHelp
//hideHelp
//fixHelp
//
//resetAll
//saveAll
//loadAll
//assemble
//
//lightBtn
//delightBtn
//lightOpt
//delightOpt
//
//makeOpt
//removeOpt
//-----------------------------------------------------------
varm_iPartCnt;
varm_astrSenPart,m_astrWords;
varm_strPrompt;
varm_iListFixed,m_iHelpFixed;
//------------------------------------------
//常变量申明
//m_iPartCnt:辞汇分类的数量。整型
//m_astrSenPart:辞汇分类的称号。字符型数组
//m_astrWords:记录各种辞汇。二维字符型数组
//m_strPrompt:文件操纵终了后的提醒信息。字符串型
//m_iListFixed:代表被流动单词列表的数字。整型
//-1暗示没有单词列表被流动
//m_iHelpFixed:暗示匡助列表流动形态的数字。整型
//-1暗示匡助列表没有被流动
//------------------------------------------
window.onload=window_onload;
//-----------------------------------------------------------
//初始化页面
functionwindow_onload()
{
variCount,iEleCnt;
varcolButton;
varstrHelp;

//------------------------------------------
//常变量申明
//iCount:计数器。整型
//iEleCnt:汇合中元素的个数。整型
//colButton:BUTTON元素的汇合。工具型数组
//strHelp:匡助文件内容。字符串型
//------------------------------------------

m_iPartCnt=<%=m_iPartCnt%>;
m_strPrompt="<%=m_strPrompt%>";
m_iListFixed=-1;
m_iHelpFixed=-1;
m_astrSenPart=newArray();
m_astrWords=newArray();
//alert("m_iPartCnt:"+m_iPartCnt+"
m_strPrompt:"+m_strPrompt);

//失掉辞汇分类的称号和已载进的各种辞汇
<%Form_iCount=0To(m_iPartCnt-1)%>
//失掉已载进的各种辞汇
<%IfIsEmpty(m_astrWords(m_iCount))=TrueThen%>
m_astrWords[<%=m_iCount%>]=newArray();
<%Else%>
m_astrWords[<%=m_iCount%>]="<%=Join(m_astrWords(m_iCount),",")%>".split(",");
<%EndIf%>

//失掉辞汇分类的称号
m_astrSenPart[<%=m_iCount%>]="<%=m_astrSenPart(m_iCount)%>";
<%Next%>
//show2DArray(m_astrWords);
//showArray(m_astrSenPart);
//将已载进的各种辞汇写进到页面中
for(iCount=0;iCount<m_iPartCnt;iCount++)
valueList(m_astrWords[iCount],iCount);

//载进匡助文件
//strHelp=tblHelp.outerHTML;
//strHelp=divHelp1.innerHTML;
//tblHelp.outerHTML="";
//divHelp.innerHTML=strHelp;
//tblHelp.style.display="";
//divHelp.style.display="NONE";
//divHelp.style.left=divHelp1.style.left;
//alert("left:"+divHelp.style.left+"
left:"+divHelp1.style.left);
//alert("pixelleft:"+divHelp.style.pixelLeft+"
pixelleft:"+divHelp1.style.pixelLeft);
//alert("posLeft:"+divHelp.style.posLeft+"
posLeft:"+divHelp1.style.posLeft);
//alert("offsetLeft:"+divHelp.offsetLeft+"
offsetLeft:"+divHelp1.offsetLeft);
//alert("clientLeft:"+divHelp.clientLeft+"
clientLeft:"+divHelp1.clientLeft);

//指定页面元素的事务处置函数
assignFunc(txtWord,getWord,"onkeypress");
assignFunc(btnGetWord,getWord);
assignFunc(btnReset,reset);
assignFunc(btnSave,save);
assignFunc(btnLoad,load);
assignFunc(lblWordList,showList,"onmou搜索引擎优化ver");
assignFunc(lblWordList,hideList,"onmou搜索引擎优化ut");
assignFunc(lblWordList,fixList);
assignFunc(lblHelp,showHelp,"onmou搜索引擎优化ver");
assignFunc(lblHelp,hideHelp,"onmou搜索引擎优化ut");
assignFunc(lblHelp,fixHelp);
assignFunc(btnResetAll,resetAll);
assignFunc(btnSaveAll,saveAll);
assignFunc(btnLoadAll,loadAll);
assignFunc(btnAsb,assemble);

colButton=document.all.tags("BUTTON");
iEleCnt=colButton.length;
//showArray(colButton);
//alert("iEleCnt:"+iEleCnt);
for(iCount=0;iCount<iEleCnt;iCount++)
{
assignFunc(colButton[iCount],lightBtn,"onmou搜索引擎优化ver");
assignFunc(colButton[iCount],delightBtn,"onmou搜索引擎优化ut");
}
//设置页面初始形态
if(m_strPrompt!="")
alert(m_strPrompt);
txtWord[0].focus();
}
<p>//-----------------------------------------------------------
//失掉用户输出的单词
functiongetWord()
{
//只要当在单词输出框中按回车或
//按“保留”按钮时才持续做下往
if(window.event.type!="keypress"&&window.event.type!="click")
return;
else
if(window.event.type=="keypress"&&window.event.keyCode!=13)return;

vareleSrc;
variIndex,iNxtWrdIdx;
varstrWord;

ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;
简单生活 该用户已被删除
沙发
 楼主| 发表于 2015-1-20 06:24:30 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
柔情似水 该用户已被删除
板凳
发表于 2015-1-20 21:26:17 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
精灵巫婆 该用户已被删除
地板
发表于 2015-1-30 05:38:22 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
不帅 该用户已被删除
5#
发表于 2015-2-6 07:40:17 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
变相怪杰 该用户已被删除
6#
发表于 2015-2-15 17:25:19 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-4 12:04:59 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-11 19:33:00 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
兰色精灵 该用户已被删除
9#
发表于 2015-3-19 09:57:41 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
admin 该用户已被删除
10#
发表于 2015-3-27 18:08:46 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-15 18:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表