惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
爱范儿
爱范儿
Vercel News
Vercel News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Blog — PlanetScale
Blog — PlanetScale
博客园 - 【当耐特】
人人都是产品经理
人人都是产品经理
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky
T
The Blog of Author Tim Ferriss
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
H
Help Net Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog

博客园 - 李.net

实战小技巧系列(4):WinForm简单步骤制作 实战小技巧系列(4):URL中包含中文参数造成乱码的解决之道 实战小技巧系列(2):关于IIS6.0中应用程序池圆设置的问题 实战小技巧系列(1):使用索引器解决参数统一解析 关于Castle中AOP的一个问题,急!! - 李.net - 博客园 关于IBatisNet + Castle开发? 关于网站安全性的问题 设计模式杂谈:创建型模式之生成器模式(Builder Pattern) 设计模式杂谈:创建型模式之抽象工厂模式(Abstract Factory) 设计模式杂谈:创建型模式之单件模式(Singleton) 设计模式杂谈:创建型模式之工厂方法(Factory Method) 设计模式杂谈:开头篇 Socket网络编程学习笔记(6):使用线程池提高性能 Socket网络编程学习笔记(5):发送和接收实体类数据 Socket网络编程学习笔记(4):TCP消息边界处理 Socket网络编程学习笔记(3):利用套接字助手类 Socket网络编程学习笔记(2):面向连接的Socket Socket网络编程学习笔记(1):常用方法介绍 关于asp.net2.0中添加引用的问题
实战小技巧系列(3):服务器端数据初始化到客户端数组中
李.net · 2008-05-01 · via 博客园 - 李.net

  为了增强用户体验,也为了减少服务器端的回发操作,使得服务器端与客户端之间的交互越来越被广泛使用,各种AJAX产品的出现也正是顺应了这股潮流。 

  在这里,我也不讲什么深奥的东西,只是把自己在开发当中遇到的一些实用的东西拿出来跟大家共享,希望不会有重的东西在。

  案例:

  现在我希望能够从数据库里读出一个数据列表,再把这个列表初始化到客户端的一个数组中去。这是一个典型的客户端与服务器端的交互,相信大家一看到这个就会有好多种方法来实现,在这里我就帮大家稍微整理一下。

  解决方法:

  1、通过AJAX实现

  很多人可能会选择这种方法,确实用这种方法很方便,对asp.net 中的ajax来说,就可以直接从服务器端返回一个数组了。

  2、在客户端用服务器端标记循环实现

  这种方法,相信以前如果做过ASP的朋友一定比较熟悉,类似于以下代码:

  <script>

  var list = [];

<% 服务器端循环开始%>

  list.push(<%循环值%>);

  <%服务器端循环结束%>

  </script>

  3、用Page.ClientScript中的方法实现

  在客户端先定义以下方法:

  <script>

  var list = [];

  function AddObject(object)

  {

   list.push(object);

  }

  </script>

  在服务器端:

  for循环

  {

   Page.ClientScript.RegisterStartupScript(this.GetType(), "dd", "AddObject("+循环值+");", true);

  }

 4、我觉得这一个方法比较巧妙,我也经常使用。

  客户端:

  <script>

  var list = [];

  function AddObject(object)

  {

   list.push(object);

  }

   <asp:Literal ID="userObjectUtil" runat="server"></asp:Literal>

  </script>

  注意,在<script></script>标记中加入了一个服务器控件, <asp:Literal ID="userObjectUtil" runat="server"></asp:Literal>,微软的解析是够强的,放在这里在服务器端照样能够使用。

  服务器端:

  StringBuilder sb = new StringBuilder(200);

  for循环

  {

   sb.AppendFormat("AddObject('{0}');\n", 循环值);

  }

   userObjectUtil.Text = sb.ToString();

  本人比较常用的就这么几种,不知道大家还有哪些好的方法。因为像这种应用,应该是越简单越好,没有必要搞得比较复杂。