程序开发范文

时间:2023-04-07 00:29:00

导语:如何才能写好一篇程序开发,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

程序开发

篇1

2、微信小程序开发工具的下载

3、微信小程序开发工具的打开

4、选择本地小程序项目

5、创建一个新的小程序项目,选择无appid即可快速创建本地小程序项目

篇2

乙方:

甲方据本合同相关条款的约定委托乙方进行客户管理软件(crm)程序(以下简称crm程序)的开发及维护。为明确双方责任,维护双方利益,双方达成以下协议:

第一条crm程序的开发周期及相关事宜

甲方在年月日之前,将crm程序开发的相关资料交予乙方。

乙方在年月日之前,完成对crm程序的开发及维护。

甲方在年月日之前,完成对crm程序进行验收。

第二条:甲方的权利和义务

1.提供专人与乙方联络。

2.提供所有需要写进crm程序上的资料给乙方,并保证资料的合法性。

3.甲方将在著作权法的范围内使用本合同标的及相关作品、程序、文件源码,不得将其复制、传播、出售或许可给第三方。

4.甲方如要向第三方出售该程序、文件源码,必须向乙方告知并征求乙方的同意。

第三条:乙方的权力和义务

1.按第一条的规定,使用甲方所提供的资料,进行crm程序的开发。

2.按第一条规定的期限内,完成crm程序的开发,并通知甲方进行验收。

3.在验收期内按照甲方的要求对crm程不合格的地方进行修改。

4.本合同标的及相关作品、程序、文件源码的版权属乙方所有。

第五条:违约责任

1.任何一方有证据表明对方已经、正在或者将要违约,可以终止履行本合同,但应及时通知对方。若对方继续不履行、履行不当或者违反本合同,该方可以解除本合同并要求对方按本合同签约金额的十倍赔偿对方损失。

2.鉴于计算机能互联网的特殊性,包括但不仅限于黑客、病毒、电信部门技术或政策调整等引起的事件,或由于internet上通路的阻塞造成服务延迟或中断,不属于乙方违约,乙方对此产生的一切后果,不承担责任;

3.如果本合同某一条款根据现行法律被确定为无效或无法实施时,本合同的其他所有条款将继续有效。此种情况下,双方将以有效的约定替换该约定,且该有效约定尽可能接近原约定和本合同相应的精神和宗旨。

4.因不可抗力而无法承当责任一方,应在不可抗力发生的三天内,及时通知另一方。且因此造成的损失,不付赔偿责任。(本合同所称不可抗力是指不能预见、不可克服并无法避免且对一方当事人造成重大影响的客观事件,包括但不仅限于自然灾害如洪水、地震、火灾和风暴等以及社会事件如战争、动乱、政府行为等。)

5.甲乙双方应严格保守在合作过程中涉及到的对方的商业和技术机密,否则因此造成的损失须承担本合同签约金额的十倍赔偿金。

第六条:甲乙双方的其他权力和义务

1.crm程序免费服务时间以乙方为甲方安装调试成功之日算起15天之内,在此期间甲方有权要求乙方对crm程序细部功能进行调试。若需更新crm程序的参数及功能,甲方应按双方协商约定的费用支付给乙方作为软件升级费用。

2.乙方承诺为甲方提供在莆田市区内三次以内(含三次)的上门服务并承诺×××个工作日内受理,在非工作日内依乙方工作安排的具体情况而定。

3.超过约定服务次数的上门服务,甲方应按双方协商约定的确良费用向乙方支付服务费用,乙方不得擅自提高服务价格。

4.乙方在法定工作时间内,以电话、电子邮件、在线洽谈等方式免费提供技术支持服务。

5.自签约之日起,甲方应向乙方一次性支付人民币贰仟伍佰圆(×××元)作为乙方开发crm程序的报酬。

6.如若乙方通过甲方的介绍与第三方达成合作并收取全部费用时,乙方须向甲方支付成交额的×××作为甲方的报酬,但签约金额不得低于叁仟圆人民币(300×××元)。

7.本合同一式两份,双方当事人各执一份,具有同等法律效力。

8.本合同未尽事宜,依照中华人民共和国相关法律规定,自签订日起生效。

9.因本协会产生的任何争议,双方应协商解决,若双方协商十五天后仍未解决,双方同意将纠纷提交乙方所属管辖区的人民法院诉讼。

第七条:以上条款如有未尽事宜,经甲、乙双方协商后加以补充(具有同等法律效力):

补充内容:

甲方:(盖章)乙方:(盖章)

篇3

1 作品: Eco2Go

作者: Taneem Talukdar,Gary Pong, Jeff Kao和Robert Lam

入选分析:

有鉴于全球暖化日益严重,因此解决全球暖化最直接的做法就是“节能减碳”。5名加拿大的学生参加Android程序开发竞赛以手机计算个人日常行动所产生的碳使用量,以期能够达到在不影响正常的生活下,尽可能以大众运输工具取代自行开车。 这个应用也可以记录你旅游后的碳使用总量。 它尽可能的提供用户参与Eco2go的社群, 该社群活动的重点在于交换节能减碳的故事与想法,并鼓励社群成员承诺节能减碳的目标。

2 作品: CallACab

作者: Konrad Huebner and Henning Boeger

入选分析:

只要按手机一个键就可以叫出租车,无论你身在何处,甚至于不知道车行的名称,只要按键出租车就自动上路。 还可以透过地图的数据显示最近的出租车的位置。

这个应用对于不熟悉科技的使用者来说的确符合他们的需求,只要按个键就可以知道出租车的位置,并且立u叫车而没有繁琐无用的人机接口,对于幅员广大的国家相当实用。

3 作品: PocketJourney

作者: Anthony Stevens and Rosie Pongracz

入选分析:

用户每到一个新的地点,都会想对当地作一个认识,诸如建筑、艺术、运动、历史、地理环境、音乐、科学等的信息均有助于帮助人们去了解,熟悉新地方的风土人情。 不仅如此,这个程序还可以帮助人们以语音或影像将这些信息呈现出来。 当手持Android 手机到一个陌生的地点,它不仅会提供当地的重要的信息,如果用户要顺道观光,它还会推荐附近著名景点。并用语音介绍其特色。

关于这个应用其实未必有用,试想我们到一个陌生的地点例如美国的旧金山或大英博物馆,可以用购买的方式向当地旅游单位购买这类中文旅游电子书下载到手机,一样的效果,而且实现的机率更高。因为不见得所有的地方无线的覆盖率都是100%。

4 作品: ANDROID SCAN

作者: Jeffrey Sharkey

入选分析:

Android Scan 可以用手机的照相机去扫描CD 或 书本的bar code,而且能实时到因特网寻找相同的CD产品的价格,并依找到的卖方的名称、位置、价格排列、用户可依最近的位置找到最便宜的价格。

这是相当有创意而且扩展性极高的应用,一旦GooGle 愿意将所有物品条形码数据价格、地点等全部上网,对我们的生活购物行为将产生更重大的影响。

扫描BAR Code 之后, Android Scan 会寻找标的物的介绍以及卖方的信息,价格等,必列出附近的可以买到的地点。

Android SCAN 找到CD 之后可以进行比价,如果在当地附近有价格合理的商店,点选后它会显示距离以及位置。

这个应用相当有趣而且具有更大的发展性,试想如果Google 将所有的东西的条形码都提供上网,利用Android 手机作为扫描仪并以此应用做为比价搜寻系统。对多数人的生活将起很大的改变。

5 作品: SPLASHPLAY

作者:

入选分析:

歌曲在Android 手机播放之后透过USB 或蓝芽接口将歌由以及旋律送到各种乐器的光板,光板会产生对应的亮点,想学歌或乐器的人可以用这种方式学习音乐。 由于这种方式很有机动性,车上,在帐蓬中都可以利用。只需包括一个吉他调音器,吉他节拍器和免持听筒,蓝牙足踏板。该产品将提供一种简单,便利和有趣的方法学习音乐。

关于这个应用实在看不出有何特点,直接在Android 手机播放音乐和仿真光板不就好了,况且学音乐和唱歌真的只用这种方式学习,那就没什么乐趣了。

6 作品: COMMANDRO

作者: Alex Pisarev, Andrey Tapekha

入选分析:

提供多重的方法达到人和人沟通的目的

以地理位置为中心的社群网络和人际互动的通讯应用软件将Android 平台的功能发挥漓漓尽致。

实际人际互动通信的革新。

多维的工具可用在娱乐以及通信实务。

提供多重的方法达到人和人沟通的目的。

Commandro 显示出你的朋友目前在那里正在做什么,它利用GPS定位系统确认你和你的朋友已经抵达事先约好的地点。

Commandro 允许你建立多维的活动计划并可以互相重复,根据它的算法,基于GPS的位置信息和用户配置的活动半径。以决定那些活动是最相关的。它也提供设定特定活动和特定个人的警示(例如个人进入了预先约定地点的半径就发出警示,你可以知道你的朋友已经快到了)。

Commandro 让你邀请你的朋友加入你的活动,当你的朋友确认之后,相关的活动就产生并加入计划中。并使用Notification 告知你的朋友是否按照你的计划。

Commandro 也可以帮助别的Commandro 的用户估计所经过的路径的时间。 它也提供 Instant Message 交换信息,并可以上传个人相片生日等信息到服务器供其他Commandro 用户浏览。既使不使用它的人机界面,依然能够在背景执行搜寻等工作。

7 作品: GolfPlay

作者: Inizziativa Networks

篇4

[关键词] Frameworkbin

[中图分类号]TN79[文献标识码]A[文章编号]1007-9416(2010)03-0104-01

1 引言

不仅仅只是ASP的一个简单升级,它更为我们提供了一个全新而强大的服务器控件结构。从外观上看,和ASP是相近的,但是本质上完全不同。几乎全是基于组件和模块化,每一个页,每一个对象和HTML元素都是运行的组件对象。在开发语言上,ASP.省略 Framework所支持的,C#.NET等语言作为其开发语言,这些语言生成的网页在后台被转换成了类,并编译成了一个DLL。由于是编译执行的,所以它比ASP拥有了更高的效率。

2 安装的执行环境

有许多ASP爱好者想转学,要学习 即ASP+,就必须先配置的调试环境。

2.1 安装Internet Information Service

操作系统可以是:Windows 2000 Professional,Windows 2000 Server ,Windows 2000 Advanced Server ,Window XP,Windows 2003。

浏览器要是5.5以上,最好是IE6.0版本,建议使用IE6SP1。

IE6SP1的下载地址是:

download.省略/download/ie6sp1/finrel/6_sp1/W98NT42 KMeXP/CN/ie6setup.exe

以上我们提出了三种操作系统都可以安装IIS,下面我们选择一种进行介绍,以Windows 2003中IIS的安装为例进行介绍。

在Windows 2003 Server安装IIS 6.0服务器的步骤如下:

(1)方法一:使用“配置您的服务器向导”安装 IIS6.0

①调出“开始”菜单,单击“管理您的服务器”。

②在“管理您的服务器角色”下,单击“添加或删除角色”。

③阅读“配置您的服务器向导”中的预备步骤,然后单击“下一步”。

④在“服务器角色”下,单击“应用程序服务器 (IIS,)”,然后单击“下一步”。

⑤阅读概要信息,然后单击“下一步”。

⑥单击“完成”。

(2)方法二:使用控制面板安装 IIS、添加组件或删除组件来安装。

①调出“开始”菜单,单击“控制面板”。

②双击“添加或删除程序”。

③单击“添加/删除 Windows 组件”。

④在“组件”列表框中,单击“应用程序服务器”。

⑤单击“详细信息”,勾选“”和“Internet 信息服务(IIS)”。

⑥单击“Internet 信息服务(IIS)”。

⑦单击“详细信息”以查看IIS可选组件的列表。

⑧选择要安装的所有可选组件。

⑨单击“确定”,直到返回到“Windows组件向导”。

⑩单击“下一步”,然后完成“Windows 组件向导”。

启动“Internet 信息服务(IIS)”,展开“Internet 信息服务”控制树,在“默认网站”上用鼠标右键单击“属性”。

在“默认网站”属性窗口中切换到“主目录”选项卡,在“本地路径”栏浏览选择主目录的路径。

单击“文档”选项卡,在出现的对话框中单击“添加”按钮,会出现“添加默认文档”对话框,在该对话框输入index.aspx。

单击“确定”按钮,回到“文档”选项卡,已经多了一项index.aspx默认文档,通过单击向上的箭头将index.aspx移动到第一项。

单击“确定”按钮,回到“Internet信息服务”管理器窗口。

单击“Web服务扩展”,在右边显示的窗口中各扩展项选择允许。

2.2 安装MDAC组件

我们在上一部分介绍了安装IIS的方法,下面我们将介绍在操作系统中安装数据库驱动程序,即安装MDAC组件,要求至少是Microsoft Data Access Components 2.7。安装Microsoft Data Access Components2.7的步骤如下所述:

①找到Microsoft Data Access Components2.7的安装文件夹。

②双击Microsoft Data Access Components 2.7的安装程序,即可启动该安装程序。

③选择“是,我接受上面许可协议中的所有条款”,然后单击“下一步”即可完成安装。

2.3 安装.NET Framework

的运行环境还需要安装.NET Framework如果操作系统是Windows 2003 则可以不需要安装.NET Framework,因为系统已经集成。以下的安装方法针对Windows 2000和Windows XP操作系统。

①下载.NET Framework1.1.exe安装文件。

从微软中国网站可以下载NET Framework1.1.exe安装文件。

②下载.NET Framework1.1简体中文版语言包。因为页面的调试报错信息比较详细,安装中文语言包便于查找错误代码。

③安装.NET框架。首先确保IIS服务器能正常运行,接着安装.NET Framework1.1。双击NET Framework1.1.exe启动安装程序,弹出询问是否安装的对话框。

④单击“是”,进入下一步就进入安装状态,碰到对话框按“回车”就行了。安装程序自动完成所有的工作。安装完毕后,IIS不用作任何设置。然后再安装简体中文语言包。直到完成安装为止。

3 环境搭建后的测试

打开浏览器,输入以下地址:localhost/2.aspx,这个地址中,2.aspx这个文件是不存在的,可以是任意名称。如果.NET Framework1.1和语言包安装正确,服务器将报错,提示找不到资源。因为2.aspx这个文件是不存在的。

要引起重视的是:必须是后缀名为.aspx才能出现上述信息,对于ASP页面,仍然由ASP引擎处理,不会出现上图这么详细的提示。

4 开发环境的补充说明

篇5

关键词 Java;桌面程序;事件处理

中图分类号:TP311 文献标识码:A 文章编号:1671—7597(2013)041-068-02

使用Java语言进行桌面程序开发包含两个关键步骤:一是实现图形用户界面;二是实现界面与用户的交互功能。桌面程序如果空有界面,但用户做什么都没有反应,程序不能与用户互动,那这个程序就没有实际意义了。为了让图形用户界面能“动”起来,能对用户的操作比如点击按钮、选择菜单命令等做出响应,就需要为图形用户界面添加事件处理编码。

2 Java的授权事件处理模型

Java采用授权事件模型(Delegation Event Model,也称为委托事件模型)的事件处理机制来实现图形用户界面与用户交互的功能。授权事件处理模型是指当用户与界面上的组件发生交互操作触发事件时,组件本身并不直接处理事件,而是将事件的处理工作委托给事件监听器对象,由监听器对象实现具体的功能。授权事件处理模型的示意图如图1所示。

采用授权事件模型进行事件处理编码,实现界面与用户的交互功能主要包含三个要点:

1)确定事件源和事件,即确定界面上的什么组件是有必要监听它与用户的交互动作的,该组件与用户交互产生的哪种事件是需要程序作出响应的。

2)根据事件源和事件编写事件处理代码。在授权事件模型中,事件监听器负责监听事件源上的事件,并能在事件产生后调用特定方法、执行功能代码。Java提供了一些事件监听器接口,能监听不同类型的事件,程序员需要实现监听器接口来创建用于自己程序的监听器类,重写接口中的方法,这些方法在事件发生时将自动被调用。

3)为事件源注册监听器对象。只有将事件源与监听器对象这样绑定之后,事件源上发生与用户的交互事件时,才会触发监听器对象中相应方法的执行,即调用具体的功能代码,亦即程序对用户的交互动作作出了响应。

3 事件处理编码的两种常见方式

由授权事件处理模型可知,事件处理编码的主要工作包含两个:1)创建监听事件的监听器类,重写其中的功能方法。2)给需要监听的组件(事件源)注册监听器类的对象。接下来,以一个典型的桌面程序模块——登录验证为例,介绍两种常见的事件处理编码方式。登录验证模块功能如图2、图3所示。用户点击“登陆”按钮即进行账号、密码验证并反馈验证结果,用户点击“重置”按钮则清空账号和密码框。

为方便演示,此示例中假定合法账号、密码为admin和1234,实际应用中账号、密码应存于数据库。账号文本框名为t_name,密码框名为p_pwd,登陆按钮名为b_login,重置按钮名为b_reset,均使用javax.swing包中的组件类型创建。

3.1 界面类同时作为监听器类方式

实现界面的类同时实现监听器接口成为监听器类,因此,事件源注册的监听器对象即为本类对象。两个按钮可以注册同一个监听器对象,在实现具体功能之前应先区分事件源是“登陆”还是“重置”按钮,然后再实现各自对应的功能。核心代码如下:

public class LoginFrame extends JFrame implements ActionListener{

……

// 两按钮注册监听器

b_login.addActionListener(this);

b_reset.addActionListener(this);

……

//ActionListner接口必须实现的方法,此方法在ActionEvent事件发生时自动被调用

public void actionPerformed(ActionEvent e) {

// 事件源是“登陆”按钮

if (e.getSource() == b_login) {

//验证账号、密码合法性并反馈结果

String pwd = new String(p_pwd.getPassword());

if ("admin".equals(t_name.getText())&&"1234".equals(pwd)) { JOptionPane.showMessageDialog(this, "登陆成功!");

} else {

JOptionPane.

showMessageDialog(this, "账号或密码错误,登陆失败!");

}

}

// 事件源是“重置”按钮

if (e.getSource() == b_reset) {

//清空账号、密码框

t_name.setText("");

p_pwd.setText("");

}

}

3.2 匿名内部类方式

以匿名内部类的方式实现监听器类,并实例化一个匿名对象直接注册给事件源。这种方式是所见即所得的图形用户界面开发工具中较常使用的方式。“登陆”按钮和“重置”按钮各自注册自己的监听器对象实现对应的功能,核心代码如下:

// "登陆"按钮注册监听器

b_login.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

//验证账号、密码合法性并反馈结果

……

}

});

// "重置"按钮注册监听器

b_reset.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

//清空账号、密码框

……

}

});

4 小结

事件处理编码的方式虽然是多样的,但中心思想是一致的,那就是:创建监听某种类型事件的监听器类,将监听器对象注册给事件源。理解了这个中心思想,那不同的编码方式就都容易理解和掌握了。

参考文献

[1]曹静,Java桌面程序开发[M].大连理工大学出版社,2011.

篇6

关键词:windows CEbasic4ppc程序开发

中图分类号:P2文献标识码: A

测绘工作的性质决定了在测绘工作中需要实时记录和现场计算,起初这些记录和计算的工作都由手工完成。手工记录和计算有不少缺点,例如工作效率差,数据错误率高,内业处理繁琐等。后来随着科技的发展,出现PC-1500、PC-E500和带编程和存储功能的计算器,这给测绘工作带来了很大的便利。这些袖珍型计算机的出现确实方便了测绘人员但是这些设备也有一些无法回避的问题,这些计算机的程序虽然都基于BASIC语言,方便了测绘人员的二次开发但是它们的调试和代码的输入十分的繁琐,并且交换界面也不太友好,显示屏幕为单行或者几行。这些袖珍计算机多依赖进口,国内无法仿制,随着国外生产线的停产,以及国内可更换零件的减少,这些计算机在国内已接近绝迹。后来出现了casio系列计算器,它们也可以编程和少量记录数据,这一系列计算器的出现在一定程度上替代了上述的那些袖珍计算机,在工程测量中仍发挥不小作用。但是那些袖珍计算机的缺点,在它们身上依然可以找到。随着时代的发展测绘人员迫切需要一种编程更为简便,调试方便,存储量大,并且交互界面友好的辅助工具的出现。WindowsCE这种嵌入式系统的出现给广大测绘工作者带来了福音。

一、Windows CE的发展和应用

WindowsCE是微软公司开发的一种基于移动计算平台的开放式可升级的嵌入式操作平台。它具有良好的图形用户界面和良好的可扩展性。且编程语言和windows桌面平台的开放语言(visual Basic、visual C++)十分类似,为程序的移植提供了便利。

WindowsCE系统相当于最基础的框架系统,WindowsCE的版本也经过了不断的更新和完善。WindowsCE系统经过7个阶段的发展已经日臻完善。从WindowsCE 3.0开始微软开始把它改成为windows for Pocket PC简称PPC,从此world和excel被装进了口袋,windowsce 5.0以后微软开放了该系统的源代码,使得基于WindowsCE开放的系统越来越多。

WindowsCE也渗透到了测绘领域,很多工具的系统基于WindowsCE开发或者本身就是windowsCE系统。携带windowsCE系统的GPS手薄(华测、中海达、南方等)已经成为主流配置。另外不少全站仪也舍弃了老、旧、复杂的黑白显示换成了基于WindowsCE内核的图形交互界面。这些经过移植的系统使得测绘仪器的操作更加简便,使得这些工具和PC处理系统实现了无缝连接,数据传输更加顺畅。很大程度的提高了测绘工作的效率。即使一些仪器没有搭载该系统,也可以通过一些搭载了该系统的辅助工具完成计算和存储数据的工作例如PDA或者智能手机。这些工具只要加载为WindowsCE系统开发的测绘软件就可以。

二、WindowsCE软件的开发

WindowsCE继承了windows平台的易用性和良好的扩展性,其开发工具也很多

微软提供的开发工具有Embedded Visual Tools 3.0,其中包括Embedded Visual C++ 3.0和Embedded Visual Basic 3.0;Embedded Visual C++ 4.0和Visual 开发工具的版本号是与Windows CE的版本号对应的。EVC3.0和EVB3.0是用来开发基于Windows CE 3.0平台的应用程序的。而EVC4.0是用来开发Windows 平台的程序。Visual 则支持目前主流的windowsCE平台(windows CE 6.0、windows mobile6.0、windows6.5等等)。除了官方给的开发工具外也出现了一些第三方的开发工具例如basic4ppc等等

在开发工具选择方面,由于之前在测绘行业中广泛应用的PC-1500、PC-E500和有编程功能的计算器大多都基于BASIC语言开发,前辈们基于这些设备开发的程序经过简单的移植之后就可以应用到新的平台例如PDA或者其他搭载windowCE系统的平台。所以BASIC语言系列更具优势。

三、开发实例

本文以开发中小程序见长的Basic4ppc举例说明。Basic4ppc具有安装简便,代码编写环境多样,代码调试方便不需虚拟机支持以及提供更加简便快捷的程序封装等特点。另外

系统本身提供了大量的可视化控件,可以很方便的使用可视化方式直接绘制用户的图形界面,直观动态的调整位置,直到用户满意为止,不必用大量的代码来描述界面控件的外观和位置。

Basic4ppc的开发界面

在工程测量中很多时候会出现临时增加放样点的情况,例如在建筑方格网的放样中,如果放样坐标系为独立施工坐标系,建筑物的轴线平行于坐标轴方向,那么坐标非常容易计算。但是也会有例外,出现轴线与坐标轴方向不平行的情况,这就给坐标计算带了困难。本文以解决此问题的程序开发为实例来讲解一下具体的开发过程

首先大概的编程思路:是利用坐标正反算原理通过输入方格网中两个相邻已知点坐标、待定点到已知坐标点轴线的垂直距离、垂足到任意一个已知点的距离等参数即可求出待定点坐标。

其次根据自己的个人习惯绘制图形控件包括TextBox、Button以及Label控件

控件绘制界面

再次根据这些控件的触发机制编写代码

Sub App_Start

Form1.Show

TextBox5.Text = ""

TextBox6.Text = ""

TextBox7.Text = ""

TextBox8.Text = ""

End Sub

Sub Button2_Click

AppClose

End Sub

Sub Button1_Click

x1 = TextBox1.Text

x2 = TextBox3.Text

y1 = TextBox2.Text

y2 = TextBox4.Text

F =方位角.FWJ(x1, y1, x2, y2)

TextBox5.Text = F

TextBox6.Text =距离.JL(x1, y1, x2, y2)

If TextBox7.Text = 0 Then

s1 = 0.00000000001

Else: s1 = TextBox7.Text

End If

s2 = TextBox8.Text

a1 = ATan(s2 / s1)

a = F-a1

S = Sqrt(TextBox7.Text * TextBox7.Text + TextBox8.Text * TextBox8.Text)

TextBox10.Text = x1 + S * Cos(a)

TextBox11.Text = y1 + S * Sin(a)

TextBox9.Text = F

End Sub

为了是代码尽量简洁可以向VB一样创建模块加以引用

虽然basic4ppc也是基于BASIC语言但是和VB的语法还是略有差别值得大家注意

控件名称由text.Text变为TextBox.text,还有该软件不识别iif函数只能通过其他判断语句来实现。在模块编写时需要用return来返回过程名的值 ,在调用时需要采用模块名.过程名(参数)的模式。

编写完成后只要通便生成终端版的可执行文件即可完成封装,再通过windowsce的同步软件传输到终端中即可在终端中使用。

最终应用效果

篇7

摘要:由Google倡导发起的开放手机联盟及其推出的Android平台,一经便在业内引起轩然大波。首先介绍了android平台中的内部结构,并通过和现有的智能手机开发平台进行比较研究分析了该平台的结构特点,以此来说明android平台具有强大的开放性和兼容性。然后重点介绍了该平台强大的功能之一――Google Map,通过开发一个利用地理定位服务来获取当前设备地理位置的应用实例,并详细地介绍了Google Map中丰富的API功能以及应用程序的基本开发流程,来验证Android SDK提供的强大的技术支持。

关键词:Android;智能手机平台;应用程序;Google Map;Geocode

中图分类号:TP18文献标识码:A文章编号:1009-3044(2009)28-7959-04

Development and Research of Application Based on Google Android

ZHANG Shi-Cheng

(Software College, Tongji University, Shanghai 201804, China)

Abstract: The establishment of OHA(Open Handset Alliance) and the publication of Android platform by Google have caused uproar in communication industry.This paper firstly introduced and analysed characteristics of this platform by compared with others,to explain that this platform has the formidable openness and the compatibility.Then it introduced the applicationinterfaces of Google Map,and the basic development procedure of a application,which used a location service to gain the geographical position of the current equipment,to verify the formidable technical support which the android sdk provides.

Key words: Android; smart phone platform; application; Google Map; Geocode

2007年11月由Google牵头有30多家移动技术和无线应用领域领先企业组成的开放手机联盟(Open Handset Alliance)了其智能手机平台--Android。Android是一个开放、自由的移动终端平台,它是由操作系统、中间件、用户界面、应用软件组成,同时其开放性保证该平台不存在任何阻碍移动产业创新的专有权障碍。开发人员在该平台开发的应用程序,是使用Java语言编写的、在Dalvik虚拟机上运行的。Android的底层是以开放性的Linux kernel为其架构,也可以理解为Google推出的手机操作系统和相关软件的总称。

1 Android平台的架构

Android平台整体自底向上由以下四个层次组成:Linux内核层、Android运行时库和其他库层、应用框架层、应用程序层。

1) Linux内核层:Android基于Linux version2.6.23内核开发的,主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为一虚拟的中间层,该层位于硬件与其它的软件层之间。需要注意的是,这个内核操作系统并非类GNU/Linux的,所以其系统库、系统初始化和编程接口都和标准Linux系统有所不同的。它没有采用虚拟内存文件系统。而是采用YAFFS2文件系统。YAFFS(Yet Another Flash File System)文件系统是一个开源的,专门为NAND Flash设计的文件系统,具有很好的可移植性,也是一种日志型文件系统,能够在Linux,uCLinux.和Windows CE上运行。YAFFS目前有YAFFS和YAFFS2两个版本,一般来说,YAFFS对小页面(528字节/页)有很好的支持,而更大的页面(2K+64字节/页)就需要支持超大容量的NAND Flash。所以采用支持大页面的YAFFS2文件系统。

2) Android运行时库和其他库层:Android 运行时库包含一组核心库(提供了Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的库类支持且大部分为开源代码,如采用的数据库为SQLite。Android选择它作为移动终端的嵌入式数据库有以下优点,它无需安装和管理配置,它是一个存储在单一磁盘文件中的完整的数据库,体积小只有250KB但支持数据库大小至2TB,提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快。

3) 应用框架层:在应用框架Android开发人员可以跟那些核心应用一样拥有访问框架APIs的全部权限。应用的系结构化设计简化了各组件之间的重用,任何应用都可以分发自己的足见,任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。

4) 应用程序层:Android本身会附带一些核心的应用程序,包括e-mail客户端、短信程序、日历、地图、浏览器、通讯录等等,目前所有的应用程序都是由Java语言开发的。

2 Android平台与J2ME的区别

J2ME是Java语言专门针对嵌入式电子产品开发的版本,应用在移动电话、PDA、电视机机顶盒以及其它资源受限的设备上,J2ME是目前移动设备上使用最广泛的开发平台.J2ME平台由多种配置、简表和可选包组成.

可以发现J2ME的应用是建立在JVM(或KVM)之上,而主机操作系统是位于J2ME平台之外.这样的设计一方面提供了跨操作系统的特性,主机操作系统可以是Symbian、Windows Mobile和Linux,另一方面J2ME虽然提供了统一的开发平台,但是JVM的安全机制让J2ME的应用程序不能调用本地系统资源.而Android向下既包括操作系统内核心,向上又拥有通现成的应用软件,加之开源、免费、可以直接使用Java语言为开发人员提供了极大的便利。

另外需要强调的是虽然同样是使用Java语言进行开发,但是Android使用的Dalvik虚拟机和J2ME使用的标准的Java虚拟机(JVM)存在以下区别:

1) Dalvik是基于寄存器,而JVM是基于堆栈的.Android选择采用寄存器的方式是因为它对提前优化(ahead-of-time optimization)提供了更好的支持,而这对类似于移动电话这样的受限环境是颇有裨益的.针对基于寄存器虚拟机和基于堆栈的虚拟机更深入的比较分析指出,基于寄存器的虚拟机对于更大的程序来说,在它们编译时花费的时间更短.

2) 运行环境的区别.Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例.

3 Android平台应用程序开发例程

开发实例是一个Android平台上地理定位应用程序,该应用是利用Android平台上的Google Map中的API来获取当前设备的地理位置,可以定时地请求更新设备当前的地理位置信息。

Android提供的地图(Map)功能可能是广大开发者非常关心的一部分。到目前为止,开发内嵌式地图应用的软件相当的困难,而且往往还需要支付很高的地图厂商的版权费用,加之手机上GPS功能还不完善,导致很多可以基于当前位置来开发功能的软件少之又少,就算是几个比较著名的LBS(Location-Based Service)软件,使用者也是寥寥无几。Android的出现打破这一格局,提供给普通开发者非常灵活的地图展示与控制功能。

3.1 相关地理知识的简介

在详细进入coding之前,我们先介绍下经纬度知识。

经度是地球上一个地点离一根被称为本初子午线的南北方向走线以东或者以西的度数,本初子午线的经度是0度,地球上其它地点的经度是向东到180度或者向西到180度。

纬度是指某点与地球球心的连线赤道面所成的线面角,其数值在0至90度之间,位于迟到以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。

所谓地图投影,就是在平面上建立与地球曲面上相对应的经纬网的方法。地图投影的拟定和计算,一般均假定地球表面为旋转椭球面或参考椭球面。

3.2Google Map中的API

使用geocode,地球上任何一个地点都可以用精度+纬度来代表。在Android中,com.google.android.maps.GeoPoint这个类代表了一个地点的经纬度;GeoPoint(int latitudeE6,int longitudeE6),E6是纬度(microdegrees).就是度数再乘以1000000。目前如果要指定地图地点,一定要传递一个Point的类到地图中。

Android中定义了一个名为com.google.android.maps的包,其中包含了一系列用语Google Map上显示,控制和层叠信息的功能类,以下是该包中最重要的几个类:

MapActivity:这个类是用语显示Google Map的Activity类,它需要连接底层网络。

MapView: MapView是用于显示地图的View组件。它可以获取键盘事件(onKeyDown和onKeyUp)来支持地图移动和缩放功能。它还支持多层Overlay,可以在地图上面画坐标,写地名,画图片等等,MapView 必须和MapActivity配合使用。另外,MapView还提供了卫星图、交通图和路况图3种模式功能。

MapCotroller:它是用语控制地图的移动。Overlay:这是一个可显示于地图之上的可绘制的对象。

GeoPoint:这是一个包含经纬度位置的对象。使用GeoPoint对象,地球上的任何一点都可以用精度+维度来代表。这个类对象代表了一个地点的经纬度:GeoPoint(int latitudeE6, int longtitudeE6),E6是微度(microdegrees),就是度数再乘以1000000,目前如果要指定地图地点,一定要传递一个GeoPoint的类到地图中,例如:

纽约帝国大厦的经度和纬度

GeoPointp=new GeoPoint(40.74836*1000000,-73.984621*1000000);

//获取当前地图的控制器

MapController mc=mapview.getController();

//地图中心移动到指定的点上

mc.animateTo(p);

//放大到21级(level),level的范围1-21

mc.zoomTo(21);

以下是几个Android关于定位功能的包中比较重要的类:

LocationManager:本类提供访问定位服务的功能,也提供获取最佳定位提供者的功能。

LocationProvider:该类是定位提供者的抽象类。定位提供者具备周期性报告设备地理位置的功能。

LocationListener:提供定位信息发生改变时的回调功能。必须实现在定位管理器中注册监听器对象。

Criteria:该类使得应用能够通过在LocationProvider中设置的属性来选择合适的定位提供者。

3.3 项目源程序开发

3.3.1 用户界面的布局

Android是通过布局(Layout)来定义UI(用户界面)的。一般视图(View)可以直接在布局的xml里声明。但是MapView只能通过自定义类来声明来实现:

Android:id=”@+id/myGMap”

Android:layout_width=”fill_parent”

Android:layout_height=”fill_parent”

Android:enabled=”true”

Android:clickable=”true”

Android:apiKey=”API_Key_String” />

3.3.2 申请APIkey

要使用Google Map服务的话,我们需要一个APIkey。我们可以通过如下方式获取APIkey:

1) 找到USER_HOME\Local Settings\Application Data\Android目录下的debug.keystore文件。

2) 使用keytool工具来生成认证信息(MD5),使用如下命令行:

Keytool Clist Calias androiddebugkey Ckeystore keystore Cstorepass android Ckeypass android

3) 打开‘sign up for the android maps API’页面,输入之前生成的认证信息(MD5)后将获取到你的APIkey。

4) 替换上面AndroidManifest.xml配置文件中“API?_Key_String”为你刚才获取的APIkey。

3.3.3 权限设置

另外,要使用定位信息的话,必须设置一些权限,AndroidManifest.xml中的配置如下:

3.3.4 程序中的核心代码

3.3.4.1 创建主程序

接着创建一个MyGPSActivity,并继承MapActivity的activity类:

class MyGPSActivity extends MapActivity

{ @Override

public void onCreate(Bundle savedInstanceState)

{ //创建并初始化地图

gMapView = (MapView) findViewById(R.id.myGMap);

GeoPoint p = new GeoPoint((int) (lat * 1000000), (int) (long * 1000000));

gMapView.setSatellite(true);

mc = gMapView.getController();

mc.setCenter(p);

mc.setZoom(14);

}…}

3.3.4.2 使用定位管理器

我们可以通过Context.getSystemService方法并传入Context.LOCATION_SERVICE参数获取定位管理器的实例:

LocationManager lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);

之后,我们需要将我们原先的MyGPSActivity作一些修改,让它实现一个LocationListener接口,使其能够监听定位信息的改变:

class MyGPSActivity extends MapActivity implements LocationListener

{…

public void onLocationChanged(Location location) {}

public void onProviderDisabled(String provider) {}

public void onProviderEnabled(String provider) {}

public void onStatusChanged(String provider, int status, Bundle extras) {}

protected boolean isRouteDisplayed()

{return false;

}}

让我们来添加一些代码,对LocationManager进行一些初始化工作,并在它的onCreate()方法中注册定位监听器。

@Override

public void onCreate(Bundle savedInstanceState)

{…

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this);

}

现在的代码中的onLocationChanged方法就会在用户的位置发生500米距离的改变之

进行调用。这里默认使用的LocationProvider是“gps” (GSP_PROVIDER) ,不过你可以根据你的需要,使用特定的Criteria对象调用LocationManger类的getBestProvider方法获取其他的LocationProvider。以下代码是onLocationChanged方法的参考实现:

public void onLocationChanged(Location location)

{if (location != null)

{double lat = location.getLatitude();

double lng = location.getLongitude();

p = new GeoPoint((int) lat * 1000000, (int) lng * 1000000);

mc.animateTo(p);

} }

上面的代码用于获取当前的新位置并更新地图上的位置显示。

3.3.4.3 添加缩放控件

我们还可以为应用程序添加一些诸如缩放效果,地图标注,文本等功能。

// 将缩放控件添加到地图上

ZoomControls zoomControls =(ZoomControls) gMapView.getZoomControls();

zoomControls.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,

LayoutParams.WRAP_CONTENT));

gMapView.addView(zoomControls);

gMapView.displayZoomControls(true);

3.3.4.4 添加Map Overlay

下面的代码是定义一个overlay:

class MyLocationOverlay extends com.google.android.maps.Overlay

{ @Override

public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when)

{

super.draw(canvas, mapView, shadow);

Paint paint = new Paint();

// 将经纬度转换成实际屏幕坐标

Point myScreenCoords = new Point();

mapView.getProjection().toPixels(p, myScreenCoords);

paint.setStrokeWidth(1);

paint.setARGB(255, 255, 255, 255);

paint.setStyle(Paint.Style.STROKE);

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker);

canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint);

canvas.drawText(”Here I am…”, myScreenCoords.x, myScreenCoords.y, paint);

return true;

}}

上面的这个overlay会在地图上显示一个“I am here”的文本。

让我们把这个overlay添加到地图上去:

MyLocationOverlay myLocationOverlay = new MyLocationOverlay();

List list = gMapView.getOverlays();

list.add(myLocationOverlay);

3.4 代码的运行

运行模拟器,在Eclipse的DMMS视图的“Emulator Control”窗口中我们可以输入经度和纬度值发送到模拟器上,之后模拟器的屏幕上就会根据这个经纬度来进行定位。实际效果图如图2。

4 结论

Android手机应用程序开发着眼于它的整个体系构架,是一项复杂的工程。本文分析了Android体系的层次架构,并通过一个应用实例开发验证了其平台的可用性。Android平台本身大量使用开源库类,并且为开发人员提供了一个非常便捷的开发环境。相信广大开发者可以借助Android 提供的强大的源码开放软件开发包(SDK),开发出丰富多彩、极具个性的移动应用。

参考文献:

[1] 高博.基于J2ME的移动通信技术的研究与应用[D].沈阳工业大学硕士学位论文,2006.

[2] 李观华,范辉.J2ME在移动通信程序中的应用[J].计算机应用,2003,23(3):124-126.

[3] 廖永刚,余冬梅,张秋余.J2ME架构与安全机制的研究[J].计算机工程与设计,2006,27(4):575-577.

[4] 张超,王阿川,王智.基于J2ME和J2EE的手机软件的研究[J].黑龙江科技信息,2007(3):21,201.

[5] Keogh J.J2ME开发大全[M].潘颖,王磊译.北京:清华大学出版社,2004.

[6] 刘向辉.基于Java的移动终端中间件的研究与设计[D].华东师范大学硕士学位论文,2005.

[7] 叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006

篇8

1、首先要确定好是做什么类型的小程序商城。比如单商城、多商城

2、其次找一个可靠的软件公司开发

3、最后,小程序系统需要有小程序的功能程序+服务器组成。就好比电脑的组成是有主机+显示屏以及网络组成一样的原理

(来源:文章屋网 )

篇9

关键词:二手车;价格评估;网页程序;开发

前言

现阶段,我国二手车市场正处于发展阶段,随着汽车市场发展,新车保有量增加消费者换车需求愈发明显,未来二手车交易量与新车销量之间的距离将会越来越小,二手车交易市场前景广阔。二手车价格评估作为中间环节,连接着交易双方,评估是否准确,不仅影成交率、且对未来二手车市场发展影响深远。基于当前很多网页中二手车价格评估不准确,本文加强对二手车价格评估网页程序开发的研究具有非常重要的现实意义。

1 背景介绍

二手车交易能够为新车销售注入更多活力,在拓展业务范围等方面发挥着积极作用。目前,我国二手车交易量较少,尚未形成规模化,有待进一步挖掘。二手车市场发展表明我国汽车市场趋于成熟,其中政策带动效果突出,如车辆购置税过户、转籍等业务的取消等,为二手车市场发展提供了极大的支持。据相关数据显示,国内汽车保有量高达1亿辆,其中很多私人车辆进入换购期,二手车资源丰富[1]。但当前,现行法律制度对于二手车市场的规范力度不够,导致二手车估价存在主观因素,缺乏统一的标准,量化难度较大,不利于二手车市场健康发展。

国内外专家和学者对二手车估价算法达成一致,基本形成较为完善的理论体系,虽然一些网站设计了估价计算器,但功能不够完善,主要集中在品牌、使用时间等标准上,使得估价存在片面性。因此本文将以不同的视角对二手车价格评估进行网页设计。

2 二手车价格评估网页程序设计

2.1 设计需求

根据当前二手车市场发展现状及现有价格评估来看,本文设计的评估网页应满足多功能、全面性需求。本文将以JavaScript为基础,提出一种建立在此基础上的二手车估价网页,用户可以通过此,及时了解和计算出二手车在当前市场上的情况。

2.2 网页框架

为了实现二手车准确估价目标,本文设计的程序主要有八个选项,同时为便于使用,还应有相关说明文字。对于网页程序的编写,主要采用JavaScript进行编写。JavaScript是一种程序语言,具有生动、活泼特点,是网页设计常用方式之一,对于网页设计人员专业要求并不高。因此在设计中,主要利用该项技术,对网页进行设计,增强人机交互效果。

2.3 网页设计

除网站logo以外,将评估程序分为左右两块,左边一块供使用者输入选项并进行计算,右侧一块则显示相应文字说明,如刚打开页面时显示欢迎文字、点击左侧选项时会在右侧显示该选项的说明、以及提交选项时会在右侧显示评估价格等。

八个选项的设计思路如下:第一,新车现价,是该款车的价格,需要手动输入,如果此车已经停产则可以根据相似的车型确定一个价格,价格单位设置为“万元”,如果忘记输入,网页会自动提醒。第二,使用年限,不同的车辆使用年限有所差别,出租车的使用年限为8年,9座以上非营运车及营运客车的使用年限为10年,9座以下非营运车的使用年限无上限,按15年计算。第三,已用年限,即车辆当前使用时间,按整年进行计算。第四,技术状况,分为四个等级,其中一级车技术状况最佳,车辆各项技术指标满足要求,且在大修里程范围以内[2]。二级车、三级车次之,四级车不参与评估,整体性能基本不符合使用要求。第五,重大事故,是否发生过重大事故,设置选项为是和否。第六,维修费用,根据所需维修费用占重置成本的比例进行划分。第七,品牌类型,现阶段车辆品牌类型呈现多元化特点,如合资品牌、国产品牌及走私罚没等,每个品牌在市场的价格有所不同。第八,使用强度,车辆平均年行驶里程,主要设置区间范围,如4万公里以内、4~8万公里之间及8万公里以上。

2.4 软件设计

针对本文设计的价格评估网页程序,核心方法为综合分析法,根据提交的选项计算得出汽车的出售价格[3]。具体计算公式如下:

其中R、N、A分别代表的是重置成本、成新率、调整系数。调整系数根据程序的各选项计算而来,成新率则采用加速折旧法中的双倍余额法进行计算,因为等速折旧法会使新车估价过高,旧车估价过低。

整个评估程序的算法写在一个js文件中,而不采用数据库,使得此网页可以脱离后台,随时随地使用。

2.5 网站形象设计

网站采用汽车金属冷色为主基调,颜色层次清晰,界面美观、简洁。金属质感与车辆表面相似,能够给人们一种视觉上的冲击,同时汽车的悦动之感,使得汽车图片样式较为丰富,能够给使用者良好的视觉体验和感受[4]。而对于网站中的字体设计,可以设置为宋体16号字,大标题设计成黑体。汽车二手车网页以汽车为主题,因此对于logo的设计,应选择特殊字体,能够凸显出汽车的时代感。

3 结束语

网站完成后,开始对网站进行测试,如每个选项的下拉菜单是否正常使用,价格输入框能否输入,右侧提示文字能否显示等,及时发现错误,并采取相应措施加以处理。还应检查页面代码,删除繁琐代码,给各个图片增加具体属性,便于图片搜索[5]。完成全部检查工作后,对文件夹进行简化处理,删除其中不必要的内容,提高网页运行效率。完成网页程序设计后,笔者对其进行了测试,进入首页,一目了然,看到各个选项的具体设置,排版自然,且非常便利。进行价格评估时,按照各个选项输入车辆具体情况,如图1。提交数据后,系统内部会对数据进行计算,最后得出相应的估价。

结论:根据上文所述,随着我国二手车市场快速发展,二手车价格评估重要性愈发突出,现行网页程序对于二手车价格的评估过于片面,选项较少。本文根据网页现状,坚持科学、合理性原则,采用JavaScript技术进行二手车价格评估网页程序开发,程序共对八个选项进行计算,丰富评估标准,使得对二手车价格的评估更加全面、系统。笔者对于二手车及网页设计知识的学习尚浅,其中存在很多不合理之处,希望能够在日后学习中进一步深入学习,完善二手车价格评估网页程序开发,从而促进二手车市场全面发展。

参考文献

[1]马晓春.二手车评估实践教学网站的制作[J].黑龙江教育(理论与实践),2015(05):30-32.

[2]高伟,邓召文,余洋.二手车重置成本法改进及评估系统设计[J].拖拉机与农用运输车,2015(03):32-35+38.

[3]冯波.基于PDA的二手车鉴定评估系统可行性研究[J].汽车实用技术,2015(09):154-155+160.

篇10

关键词 ajax;web应用;异步交互

中图分类号:tp3 文献标识码:a 文章编号:1671—7597(2013)051-077-02

在传统的web应用程序中,用户和服务器之间是一个同步交互的过程,用户在客户端向服务器提出请求,服务器端收到请求后进行处理,然后再将处理结果以全新的页面发送回客户端。用户提交请求后,不能进行其它操作,服务器需要一定时间对请求进行处理,使得用户得不到立即反馈。ajax引入了异步请求的技术,在用户和服务器之间增加了一个中间层,使得用户在提交请求后不用等待服务器的响应,可以继续操作使用应用程序,web站点看起来是即时响应的。现在ajax技术已经在面向消费者的web应用开发中得到广泛的应用,如amazon的a9搜索引擎、google的gmail和googlemaps。

1 ajax与传统web应用

1.1 传统的web应用

传统的web应用程序大多采用b/s结构,系统与用户之间同步交互。用户对浏览器操作向服务器端发送一个http窗体请求,服务器端接收到请求后,判断用户的请求行为,处理来自各种数据源的数据信息,设置相关属性值后加入到服务器返回给用户的信息内容中,即一个html页面。这个过程不是连贯的用户体验,用户提交请求后,不能进行其它操作,服务器需要一定时间对请求进行处理,用户处于等待状态,浏览器上大部分显示空白。在服务器负载比较小时,这种同步交互方式工作没有任何问题。但是当服务器负载较大时,服务器需要更多的时间进行处理运算来响应用户的请求,过长的等待服务器响应时间对于用户来讲是不能接受的,有时用户经过长时间等待收到的可能是服务超时的错误消息。还有一种情况,当用户只是想对页面中一小部分的内容进行修改时,浏览器却仍然需要对整个页面的数据进行加载刷新,这样即浪费上网流量,又占用大量时间,工作方式缺乏人性化。传统web应用请求响应过程如图1所示。

1.3 ajax的概念

ajax全称为“asynchronous javascript and xml”,是一种创建交互式web应用的手段,它采用客户端脚本来实现与服务器端进行交换数据。可以动态、灵活的更新web页面。ajax技术是将java技术、xml、dom以及javascript等编程技术,按一定的协作方式合理组合在一起,来充分发挥各自的作用。这些技术有javascript、xstl、xhtml、dom、xml、css及xmlhttprequest。ajax技术的出现和使用使得web应用的交互性得到了很大提高。

1.3 ajax的工作原理

ajax的工作原理是在用户和服务器两者之间加了一个中间层ajax引擎(ajax engine),实现用户操作与服务器响应间异步交互模式。在这种模式下,一部分用户请求如数据验证和简单的数据处理请求去交给ajax引擎完成,确实需要服务器端完成的请求,才由ajax引擎向服务器提交,减少了页面重载次数,使用户感觉所有的操作很快得到了响应,交互性大大增强。ajax应用模型如图2。

ajax引擎接收处理请求的流程为:

1)捕获web浏览器事件,对应不同事件注册一个处理函数。

2)在客户端浏览器初始化xmlhttprequest请求对象。

3)与服务器建立连接,向服务器发送请求。

4)接收服务器响应对处理结果进行分析。

5)使用dom api更新客户端页面内容。

2 ajax的关键技术

鉴于ajax涉及到的技术较多,本文着重对xmlhttprequest、dom、xml、javascript几种技术的使用进行说明。

2.1 xmlhttprequest

xmlhttprequest对象是ajax技术中最核心的部分。利用这个对象,ajax不用刷新页面即可与服务服进行数据的传输和读写。它只与服务器进行数据交换,减轻了服务器的负担,减少了等待响应时间,用户与服务器交互更为流畅。

2.2 dom

dom全名为“document object model”,是w3c组织的推荐标准。该模型是java api for xml processing的组件api。该document object m

odel level 2 core api允许程序动态访问和更新文档的内容和结构。脚本或程序语言通过dom与网页进行交互沟通。

2.3 xml

xml全名为“extensible markup language”,是一种开放的,允许用户对自己的标记语言进行定义的源语言。标记是一种信息符号,它能被计算机理解,计算机相互之间通过这种信息符号来处理包含各种信息的文章等。xml语言是由相关人士自由决定的标记语言,具有开放性、可扩展性、可自描述性的特点。它作为数据交换与数据传输的标准在web应用中被广泛使用。

2.4 javascript

javascript,是一种广泛用于客户端web开发的脚本语言。它虽然是一种简单的脚本语言,但功能却十分强大,不同于其它服务器端脚本语言,javascript主要被作为客户端脚本语言在用户的浏览器上运行,不需要将数据交付到服务器上进行处理,减少了服务器的负担,大大提高了系统的效率。在web开发中通过用到javascript以下几种功能:在html页面中嵌入动态文本,接收客户端请求并作出响应,读写html元素,实现表单数据前端校验等。

3 结束语

ajax技术实现用户和服务器的异步交互模式,在两者之间加了一个中间层ajax引擎,动态、灵活的对web页面进行刷新,最大限度的增加客户端的数据处理能力,减轻了服务器的负担又加快了响应速度,从而减少网络流量缩短响应时间。ajax技术使web应用系统具有更高的实效性、更便捷的交互性和更好的人性化服务,使web应用系统感觉像桌面应用程序一样使用,从而提升web应用系统的运行效率。

参考文献

[1]蒋维.ajax技术在网络b/s架构中的应用研究[j].微计算机应用,2008,29(7):29-33.

[2]scott raymond.ajax on rails(影印版)初版[m].东南大学,2007:81-130.