第二个灵魂 发表于 2015-1-16 22:46:42

ASP.NET编程:分离ASP.NET与JavaScript开辟电子沙盘

以前学了大概半年时间的asp(没有机会做大系统,最多是自己对公司系统做些调整和修改还有一些小程序)。应该说开始接触asp.net是今年元月5号的事。现在很想把公司的系统重新用.net来架构,却不知道如何下手。asp.net|javascript  摘要在基于B/S布局的收集信息体系开辟中,分离ASP.NET与客户真个JavaScript剧本,开辟能与数据库举行交互的电子沙盘。沙盘中图标的参数存取由客户端与服务器交互完成,图标的挪动和图标的信息扫瞄依托客户端完成。文章分离体系开辟实例,具体论述了这一办法的完成历程。

  关头词ASP.NETJavaScript电子沙盘

  引言

  ASP.NET手艺是用于Web开辟的全新框架,它完整基于模块与组件,给Web开辟职员供应更多的天真性,是创立Web使用程序的无效工具。ASP.NET出格合用于开辟静态的Web站点,使网页与用户之间不单单是显现和扫瞄的干系,并且仍是静态交互的干系。年夜部分的交互义务都可由ASP.NET的服务器端代码来完成。笔者为某单元开辟的B/S布局收集信息体系,除一样平常功效外,还必要出格计划地舆模块。因其浩瀚的上司子单元的地舆地位会对照频仍地产生变化,而营业事情与地舆地位的设置又有侧重要干系,为此,要在体系中引进基于数据库撑持的电子沙盘。使各级用户按权限检察和设置子单元在舆图上散布。

  电子沙盘的基础道理是在以舆图为背景的网页中天生多个能够挪动的图标,每个图标代表一个子单元。但在Web上仅靠ASP.NET来完成沙盘功效是对照坚苦的,由于它对交互性提出了更高的请求。这次要表现在两个方面:一是沙盘与数据库服务器的交互,这次要表现在沙盘数据在数据库中的存取;二是沙盘与用户的交互,这次要表现在用户在舆图中挪动图标(鼠标拖动举措)和扫瞄图标的信息(鼠标点击举措)两个方面。在实践操纵中,沙盘与用户的交互是对照频仍的,假如每次举措都请求扫瞄器和服务器创建一次往复路程,一定会遭到网速、服务器功能等要素的制约,从而延伸用户操纵的守候工夫,下降沙盘的有用性。

  为此,要引进JavaScript手艺,来满意这类及时交互的需求。JavaScript是一种基于工具(Object)和事务驱动(EventDriven)并具有平安功能的剧本言语。JavaScript剧本嵌进在网页中,运转时JavaScript代码和网页一同下载到扫瞄器。当用户的一些操纵不触及到数据存取时,如挪动图标与扫瞄图标信息这两项次要的沙盘操纵,就能够由JavaScript剧本来完成,从而利用户、扫瞄器、服务器之间的三层交互酿成了用户、扫瞄器之间的两层交互,无效进步网页反响的疾速性和天真性。

  计划思绪

  本文所述的信息体系,以Windows2000Server+IIS5.0+.NET作为平台,接纳ASP.NET+C#.NET机关程序框架,SQLServer2000为背景数据库。针对该单元分为总部―分区―子单元三层布局,按行政级别划定了分歧的权限:总部级用户具有对全体子单元的扫瞄权和分配权,分区级用户具有对天职区子单元的扫瞄权和分配权,子单元具有地舆设置权。

  为只管削减客户端与服务器的交互次数,电子沙盘的运转历程应分为三个步骤举行:第一步是在网页加载时,Web服务器从数据库服务器中提取图标参数(坐标值与基础信息),将JavaScript代码和网页一同下载到客户端;第二步是由JavaScript剧本卖力实行沙盘与用户的交互(设置图标与扫瞄图标信息);第三步是在用户选择保留设置时,Web服务器吸收来自客户真个坐标值等参数,并赋值给数据库服务器的存储历程,由存储历程实行数据的保留。

  程序计划

  1、网页加载

  Web服务器依据用户ID从数据库中提取其所属的图标参数(坐标值和基础信息),再依据坐标值将图标定位在舆图中,同时将图标基础信息写进网页代码。在网页加载终了今后,天生的图标会设置在舆图上的指定地位,且附带了基础信息。节选程序以下:

privatevoidPage_Load(objectsender,System.EventArgse)//初始化
{
if(!IsPostBack)//程序是不是是第一次实行
{
stringstrConn=ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnectioncn=newSqlConnection(strConn);
SqlCommandcm9=newSqlCommand("sp_sketchmap",cn);//提取子单元称号及坐标值
cm9.CommandType=CommandType.StoredProcedure;
cm9.Parameters.Add("@unitid",SqlDbType.VarChar,50);//利用者单元编码
cm9.Parameters["@unitid"].Value=Session["unitid"].ToString();
cm9.Parameters.Add("@D1",SqlDbType.VarChar,50);//1号子单元称号
cm9.Parameters["@D1"].Direction=ParameterDirection.Output;
cm9.Parameters.Add("@D1A",SqlDbType.Int);//1号子单元横坐标
cm9.Parameters["@D1A"].Direction=ParameterDirection.Output;
cm9.Parameters.Add("@D1B",SqlDbType.Int);//1号子单元纵坐标
cm9.Parameters["@D1B"].Direction=ParameterDirection.Output;
cm9.Parameters.Add("@D1C",SqlDbType.VarChar,100);//1号子单元基础信息
cm9.Parameters["@D1C"].Direction=ParameterDirection.Output;
……
  2、客户端操纵

  ASP.NET中的Web控件没有坐标属性,因而它们不克不及在网页中挪动。能够接纳HTML控件中的Label控件(div),把它当做一个能够挪动的层来利用,在这个层上嵌进一个Image控件,二者兼并在一同便可作为举动的图标。

  编写的JavaScript剧本次要有两类:一类是拖动举措,即图标能够被鼠标拖动到舆图上的某一名置;另外一类是点击举措,在图标被选中形态下,单击鼠标的右键能够展现图标的基础信息。节选程序以下:

<scriptlanguage="JavaScript">//JavaScript剧本
……
functiondragIt(evt)//鼠标拖动举措
{
 ……
 if(selectedObj){
  shiftTo(selectedObj,(window.event.clientX-offsetX),(window.event.clientY-offsetY))
  document.forms(0).TextBox1.value=window.event.clientXCoffsetX
  document.forms(0).TextBox2.value=window.event.clientYCoffsetY
  document.forms(0).TextBox3.value=window.event.srcElement.id
 }
}
……
functionrightclick(){//鼠标右键点击举措
 if(event.button==2){
  linkex.innerHTML=document.forms(0).TextBoxD1C.valuelinkex.style.posTop=plane1.style.posTop+20
  linkex.style.posLeft=plane1.style.posLeft+20
  linkex.style.backgroundColor="Pink"
  linkex.style.visibility="visible"
 }
}
</script>
  3、坐标值保留

  在用户完成图标的设置后,可选择保留设置,这一举措由Web控件Button按钮的Click事务引发。Web服务器将用户ID、图标ID和坐标值赋传送给数据库服务器的存储历程,由存储历程将数据保留到数据库表中。节选程序以下:

privatevoidButton1_Click(objectsender,System.EventArgse)
{
 stringstrConn=ConfigurationSettings.AppSettings["ConnectionString"];
 SqlConnectioncn=newSqlConnection(strConn);
 SqlCommandcm9=newSqlCommand("sp_sketchmap_modify",cn);//保留子单元坐标
 cm9.CommandType=CommandType.StoredProcedure;
 cm9.Parameters.Add("@unitid",SqlDbType.VarChar,50);//利用者单元编码
 cm9.Parameters["@unitid"].Value=Session["unitid"].ToString();
 cm9.Parameters.Add("@D1",SqlDbType.VarChar,50);1号子单元称号
 cm9.Parameters["@D1"].Value=TextBoxD1.Text.Trim();
 cm9.Parameters.Add("@D1A",SqlDbType.Int);1号子单元横坐标
 cm9.Parameters["@D1A"].Value=Int32.Parse(TextBoxD1A.Text.Trim());
 cm9.Parameters.Add("@D1B",SqlDbType.Int);//1号子单元纵坐标  
 cm9.Parameters["@D1B"].Value=Int32.Parse(TextBoxD1B.Text.Trim());
 ……
 cm9.Connection.Open();
 cm9.ExecuteNonQuery();
 cm9.Connection.Close();
……
  停止语

  电子沙盘的别的一个功效是导上天图,外地图的情形产生变更时,能够实时举行交换,为包管坐标的正确性,请求导上天图要与原有舆图的巨细不异。因办法较为复杂,不再赘述。

  本文所计划的电子沙盘开辟办法,已乐成使用于B/S布局的收集信息体系,实践运转标明该办法是非常牢靠与有用的。假如要拓展其功效,还能够在此基本上做更进一步的修正和完美。另外,小型软件代码重用价值低,没有必要跨平台;大型软件,有严格的规划、部署,不可以随意跨平台。

山那边是海 发表于 2015-1-19 23:26:24

asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源

admin 发表于 2015-1-26 20:31:24

asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!

小魔女 发表于 2015-2-4 20:30:31

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。

简单生活 发表于 2015-2-10 07:05:16

碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。

飘灵儿 发表于 2015-3-1 01:31:21

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

小女巫 发表于 2015-3-10 11:40:38

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

老尸 发表于 2015-3-17 06:12:33

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。

仓酷云 发表于 2015-3-23 23:17:03

ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
页: [1]
查看完整版本: ASP.NET编程:分离ASP.NET与JavaScript开辟电子沙盘