asp.net如何加快页面加载(三)——浅谈正则应用

  在这一两年内数据存储以json格式风靡全球。各个大大小小的网站都会使用json格式来存储一些细节或只读(非查询筛选条件)的信息。而在c#后台代码读取json 格式转化为Datatable或者其他对象,json字符串数据提取某些值时都显得极其繁琐。

  现在我们看看使用最原始的办法(数组分拆法)提取json字符串数据提取某些值:

  示例1:假设我们有一个数据存储的是网站信息:

  string txtRent = @"{'网站名称':'脑球','网站地址':'http://www.naoqiu.com','IP':'192.168.0.1','综合排名':'没有排名数据'},

  {'网站名称':'家常菜谱','网站地址':'http://shipu.naoqiu.com','IP':'192.168.0.2','综合排名':'12345678'},

  {'网站名称':'公交查询网','网站地址':'http://bus.naoqiu.com','IP':'192.168.1.2','综合排名':'12345678'}";

  接下来我们得从这些信息中获取网站地址,数组分拆法代码如下:

  /// <summary>

  /// 数组分拆法

  /// </summary>

  ///  <returns></returns>

  public static string[] GetRentInfo()

  {

  string txtRent = @"{'网站名称':'脑球','网站地址':'http://www.naoqiu.com','IP':'192.168.0.1','综合排名':'没有排名数据'},

  {'网站名称':'家常菜谱','网站地址':'http://shipu.naoqiu.com','IP':'192.168.0.2','综合排名':'12345678'},

  {'网站名称':'公交查询网','网站地址':'http://bus.naoqiu.com','IP':'192.168.1.2','综合排名':'12345678'}";

  string[] items = txtRent.TrimEnd('}').Split('}');

  string[] newItems=new string[items.Length];

  int i = 0, index = 0;

  string tem;

  foreach (string s in items) {

  index = s.IndexOf("网站地址");

  tem = s.Substring(index + 7);

  newItems[i++] = tem.Split('\'')[0];

  }

  return newItems;

  }

  这种方法虽然可以实现功能,但似乎代码写得有些繁杂,执行效率底,那我们怎么样来提高代码的提高效率,以及简洁性? 答案是有的,使用正则来获取相应的数据:

  /// <summary>

  /// 正则基础应用

  /// </summary>

  ///  <returns></returns>

  public static string[] GetInfo_Domain() {

  string txtRent = @"{'网站名称':'脑球','网站地址':'http://www.naoqiu.com','IP':'192.168.0.1','综合排名':'没有排名数据'},

  {'网站名称':'家常菜谱','网站地址':'http://shipu.naoqiu.com','IP':'192.168.0.2','综合排名':'12345678'},

  {'网站名称':'公交查询网','网站地址':'http://bus.naoqiu.com','IP':'192.168.1.2','综合排名':'12345678'}";

  MatchCollection matches = Regex.Matches(txtRent, @"(?<=网站地址\'\:\')[^\']+");

  string[] newItems=new string[matches.Count];

  int i = 0;

  foreach (Match m in matches) {

  newItems[i++] = m.Value;

  }

  return newItems;

  }

  总结:看到这个方法是否觉得正则好方便!正则的应用非常广泛,比如网页内容的提取。下个章节讲解通过正则自定义完成json与DataTable互转。

  网上的资源及本文参考文献

  微软的正则表达式教程

  System.Text.RegularExpressions.Regex类(MSDN)

  专业的正则表达式教学网站(英文)

  关于.Net下的平衡组的详细讨论(英文)

  Mastering Regular Expressions (Second Edition)

  正则表达式30分入门教程

  当然还有微软的.NET中实现JSON的API

  如果你想用net json 的api可以看看这篇文章:http://www.cnblogs.com/litongtong/archive/2008/01/12/1036312.html

时间: 2024-10-24 00:47:47

asp.net如何加快页面加载(三)——浅谈正则应用的相关文章

WordPress启用Memcache 加快页面加载速度

大部分使用Wordpress建站的站长都是使用动态页面或者伪静态页面,用户请求页面时就免不了从数据库中读取内容,减缓了页面加载速度.如果访问量过大,频繁对数据库操作也会增加数据库及服务器的负载.如你的服务器支持Memcache,建议你启用Memcache,加快Wordpress页面加载速度,减少数据库负载. Memcache是一种高性能的分布式内存对象缓存系统.在动态应用中Memcache 既能加快页面加载速度,也能有效降低数据库的负载.在 WordPress 实现 Memcache就是使用 M

快页面加载时间的4种方法

大多数SEO工作者都知道网页加载的时间长短是网站排名的因素之一,越快的加载页面时间对排名越有利.如果一个页面加载缓慢或者超时,会流失多少流量呢?更重要的是,这可能使我们损失一堆客户,以下是页面加载时间对网站流量的一副图. 由此可知加快页面加载时间对我们多么重要,那么,我们该怎样才能加快页面的加载时间呢?这里有4钟技巧有助于优化页面加载时间,确保你的客户不会因为加载页面缓慢而离开你的网站. 1. 使用图像编辑程序和提供保存网页设置 由于图像本身属性比较大,降低图像加载时间就可以显著的降低页面加载时

js 延迟加载 改变JS的位置加快网页加载速度_基础知识

当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点: 1.延迟加载js代码 复制代码 代码如下: <script type="text/javascript" src="" id="my"></script> <script type="text/javascript"> setTimeout(&quo

ASP.NET MVC中利用脚本优化提高页面加载速度:

在这里我们说一下脚本优化的三个方法: 一.在我们做Web开发的时候,当我们引用Js文件的时候,我们一般会将js文件放在文档的head标签中,这时当页面加载的时候,浏览器会按着由上到下的顺序,当浏览器遇到script标签时,它会阻止其他内容的下载,知道他检索完整个脚本,这样会减慢页面加载速度,因此,script标签应该尽可能的放到页面的底部(仅仅位于body结束标签之前)就会产生很好的用户体验. 二.另一种减少页面加载时间的技术就是精简自定义脚本.比如我们经常用到的jquery.validate.

ASP.NET 书上关于页面加载事件(Page_Init)的说明,看不懂,求指教————

问题描述 以下是书中的内容:------------------------------------页面加载事件(Page_Init)Page_Init事件与Page_PreInit事件基本相同,区别在于Page_Init并不能保证完全加载各个控件.虽然在Page_Init事件中,依旧可以访问页面中的各个控件,但是当页面回送时,Page_Init依然执行所有的代码并且不能通过IsPostBack来执行某些代码,示例代码如下所示.protectedvoidPage_Init(objectsende

java web-浏览器清除缓存后访问服务器页面加载超级慢,进个登陆界面就要2分钟

问题描述 浏览器清除缓存后访问服务器页面加载超级慢,进个登陆界面就要2分钟 访问公司服务器上的java web 项目,当浏览器清除缓存后,页面要加载2分钟才好,第二次访问就挺快了,然后再清除缓存又会加载好长时间,但是后来我发现当刷新页面时接着点暂停再点刷新页面立马就加载完了,请问这是怎么一回事,该怎么解决? 解决方案 由于浏览器缓存了一些前端文件,所以你清除缓存后会重新从服务器下载这些文件,导致速度变慢,解决办法可以是加快服务器的性能,还有页面需要优化,一次性少加载一些文件或者先显示页面,后加载

跨域网站实现了单点登录,但各网站的每个页面继承验证类,导致页面加载时 刷新两次

问题描述 跨域网站实现了单点登录,但各网站的每个页面继承验证类,导致页面加载时刷新两次各网站加载较慢单点登录原理是各网站的用户凭证保存到验证服务器的cache中请问有什么异步方法不让每个页面都刷新一次谢谢 解决方案 解决方案二:每个页面都访问单点登录系统?什么情况?你的网站,如果没有登录信息,才需要访问单点登录网页.而如果已经登陆过,你的网页该干什么还干什么.从单点登录网页重定向回到当前网站页面之后,当前网站应该从单点登录网站(根据传来的url参数)把用户的信息取过来保存,以后在打开别的页面时就

页面加载顺序问题

问题描述 前台代码<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="<%$ConnectionStrings:KnowledgeConnectionString%>"SelectCommand="SELECTBitOrder,NameFROMKB.AreaorderbyBitOrder"></asp:SqlDa

Javascript在网页页面加载时的执行顺序

javascript|加载|网页|页面|执行 一.在HTML中嵌入Javasript的方法 直接在Javascript代码放在标记对<script>和</script>之间 由<script />标记的src属性制定外部的js文件 放在事件处理程序中,比如:<p >点击我</p> 作为URL的主体,这个URL使用特殊的Javascript:协议,比如:<a href="javascript:alert('我是由javascript