JavaScript访问后台方法的几种实现方法
2008-12-02 11:30
344 查看
最近的项目中需要在客户端使用JavaScript访问后台的方法,尝试了以下几种方法:
1.在<%%>中直接书写代码段
2.通过js直接执行button的click()方法 触发后台代码
3.Ajax
参考 http://blog.csdn.net/driftwing/archive/2008/11/26/3378061.aspx在后台代码处理页面中引入要访问的方法
4.将该方法发布为webservice 通过javascript直接调用webservice.
项目中需要一次性循环生成多张密码卡,而且麻烦的地方在于,前台后台需要共享相当多的属性,通过hiddenField来传递。而每张密码卡都需要首先调用后台getTopMatrix()方法返回一个字符串,客户端获得字符串后做处理并存储至EXCEL,若此过程成功则调用另一个后台方法preToFormal()更新数据库。初步尝试的时候使用了方法一,方法一的缺点比较明显,当页面加载的时候<%%>中的内容被自动解析,无法实现可控的调用。
<script>
/*直接获取返回值*/
var str_matrix="<%=getTopMatrix()%>";
</script>
方法二解决了可控性的问题。实现步骤如下:
1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
2、在前台写一个js函数,内容为document.getElementById("btn1").click();
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
具体实现代码略。
当通过click事件触发后台方法后,后台方法里面对一个HiddenField赋值.而此时前台的js代码仍在执行,需要用到这个HiddenField处理后的值。结果往往是后台没有为HiddenField赋值前台js代码已经取到这个HiddenField的值,这时候仍然是空值。而通过加计时器的方法又显得相当笨拙,且效率很低。
这个需求最终通过方法三Ajax解决,解决步骤:
1、首先发起一个Ajax请求,访问后台页面中的getTopMatrix()方法获取密码字符串,为避免方法二中的问题,采用Ajax的同步方式。
2、请求响应完毕之后,获取返回的密码字符串通过Javascript处理并存储至Excel。
3、步骤2成功之后则发起另一个ajax请求,更新数据库相关字段。
==To be continue==
1.在<%%>中直接书写代码段
2.通过js直接执行button的click()方法 触发后台代码
3.Ajax
参考 http://blog.csdn.net/driftwing/archive/2008/11/26/3378061.aspx在后台代码处理页面中引入要访问的方法
4.将该方法发布为webservice 通过javascript直接调用webservice.
项目中需要一次性循环生成多张密码卡,而且麻烦的地方在于,前台后台需要共享相当多的属性,通过hiddenField来传递。而每张密码卡都需要首先调用后台getTopMatrix()方法返回一个字符串,客户端获得字符串后做处理并存储至EXCEL,若此过程成功则调用另一个后台方法preToFormal()更新数据库。初步尝试的时候使用了方法一,方法一的缺点比较明显,当页面加载的时候<%%>中的内容被自动解析,无法实现可控的调用。
<script>
/*直接获取返回值*/
var str_matrix="<%=getTopMatrix()%>";
</script>
方法二解决了可控性的问题。实现步骤如下:
1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
2、在前台写一个js函数,内容为document.getElementById("btn1").click();
3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;
具体实现代码略。
当通过click事件触发后台方法后,后台方法里面对一个HiddenField赋值.而此时前台的js代码仍在执行,需要用到这个HiddenField处理后的值。结果往往是后台没有为HiddenField赋值前台js代码已经取到这个HiddenField的值,这时候仍然是空值。而通过加计时器的方法又显得相当笨拙,且效率很低。
这个需求最终通过方法三Ajax解决,解决步骤:
1、首先发起一个Ajax请求,访问后台页面中的getTopMatrix()方法获取密码字符串,为避免方法二中的问题,采用Ajax的同步方式。
2、请求响应完毕之后,获取返回的密码字符串通过Javascript处理并存储至Excel。
3、步骤2成功之后则发起另一个ajax请求,更新数据库相关字段。
==To be continue==
相关文章推荐
- javascript中的startWith和endWith的几种实现方法
- 利用javascript实现页面跳转的几种方法
- Javascript实现跨域后台设置拦截的方法详解
- 菜鸟蔡之Ajax复习第一篇(后台asp.net)(传统的JavaScript方法实现Ajax功能)
- 利用javascript实现页面跳转的几种方法
- JavaScript中iframe实现局部刷新的几种方法汇总
- Javascript实现把网页中table的内容导入到excel中的几种方法
- 另一种Javascript访问后台方法
- javascript中的startWith和endWith的几种实现方法
- java servlet 几种页面跳转的方法,需要的朋友可以参考一下 在访问网页的过程中,页面自动刷新、跳转和重定向是经常用到的,这里就说说在Java中是如何实现这些功能的! 一、页面自动刷新
- JavaScript实现跨域的几种方法
- javascript实现原生ajax的几种方法介绍
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- javascript实现页面跳转的几种方法
- JavaScript继承实现的几种方法
- 用 AJax 技术实现 JavaScript 访问服务器端方法
- Javascript实现把网页中table的内容导入到excel中的几种方法
- 禁用IE的后退按钮|显示网页已过期|几种语言的实现方法|c#|javascript|html
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法