在项目中查询时,因数据量大,导致网络传输很慢,这就需要在服务器端查询出的数据进行压缩处理,后传输完了在客户端进行解压处理(此为在Silverlight中压缩与解压); 具体方法如下:

using Newtonsoft.Json;
using Telerik.Windows.Zip;
////服务器端对查询出的数据进行压缩处理
public static string CompressString(string str)
{string result = string.Empty;try{MemoryStream memoryStream = new MemoryStream();ZipOutputStream zipOutputStream = new ZipOutputStream(memoryStream, ZipCompression.Default);StreamWriter writer = new StreamWriter(zipOutputStream);writer.Write(str);writer.Flush();result = Convert.ToBase64String(memoryStream.ToArray());}catch { }return result;}

如:Common.CompressString(JsonConvert.SerializeObject(b.ToList<Employees>()));服务器端查询出来的 b.ToList<Employees>()数据后,先序列化后通过上面方法CompressString()压缩;压缩后传输到客户端,此Employees为一个实体类。

////客户端进行解压处理
public string UnCompressString(string compressedBase64String){string result = string.Empty;try{MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(compressedBase64String));ZipInputStream input = new ZipInputStream(memoryStream);StreamReader reader = new StreamReader(input);result = reader.ReadToEnd();}catch { }return result;}

如:   result_Employees= new QueryableCollectionView(JsonConvert.DeserializeAnonymousType<List<Employees>>(UnCompressString(e.Result),new List<Employees>()));客户端接受数据 时先通过方法UnCompressString()解压数据后反序列化,得到相关实体类Employees的List表;

通过序列化、压缩、解压、反序列化,会发现在处理大批量数据查询时,客户端查询等待时间会缩短几十倍的关系;

值得注意的是,在用WebServices作为服务器查询数据时,当前台页面引用该WebServices时可能丢失实体类的定义说明,故在引用的Reference.cs中需加上该实体类的定义说明,否则客户端解压数据时出问题。

转载于:https://www.cnblogs.com/xiaozou1018/archive/2013/01/10/2854788.html

压缩、解压 解决 客户端查询大批量数据时等待时间过长的问题相关推荐

  1. android zip解压出错,常见的压缩解压文件出错解决办法

    您是否遇到过精力了好久下回来的压缩吧,结果在解压过程中出现错误的情况呢?比如说此解压失败或压缩文件文件已经损坏?导致解压文件失败.如果遇到这种问题,那就试试常见的压缩解压文件出错解决办法吧.凡事求人不 ...

  2. 使用golang 实现deflate、zlib压缩解压数据

    使用golang 实现deflate.zlib压缩解压数据 在golang的官方标准库的compress目录下,有bzip2.flate.gzip. lzw. zlib包实现对应算法的数据压缩和解压, ...

  3. windows自带压缩工具 makecab压缩 expand解压 解决ERROR: is not a file

    windows自带压缩工具 makecab压缩 expand解压 解决ERROR: is not a file 压缩单个文件 makecab C:\Users\1\Desktop\测试压缩.txt C ...

  4. Delphi Base64编码/解码及ZLib压缩/解压

    最近在写的程序与SOAP相关,所以用到了一些Base64编码/解码及数据压缩/解压方面的知识. 在这里来作一些总结: 一.Base64编码/解码 一般用到的是Delphi自带的单元EncdDecd,当 ...

  5. WebAPI性能优化之压缩解压

    有时候为了提升WebAPI的性能,减少响应时间,我们会使用压缩和解压,而现在大多数客户端浏览器都提供了内置的解压支持.在WebAPI请求的资源越大时,使用压缩对性能提升的效果越明显,而当请求的资源很小 ...

  6. linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...

  7. 算法 - 赫夫曼编码(对字符串进行压缩 与 解压(解码)) - (对文件进行压缩解压)

    1.压缩:使用赫夫曼编码进行压缩 题目 构建赫夫曼树 package tree.huffmantree;import java.util.*;public class HuffmanCode {pub ...

  8. c# rar解压大小_Linux压缩解压指令-bzip2、xz、compress、rar

    前面已经进介绍过Linux中用到的归档程序tar,文件压缩解压程序gzip.zip,今天继续介绍另外四种常见的压缩程序bzip2.compress.xz.rar. 文件压缩 bzip2 bzip2采用 ...

  9. Linux中压缩解压工具使用

    1.压缩原理 目前我们使用的计算机系统是使用bytes单位计量的,实际上,计算机中最小的计量单位是bits 1 byte = 8 bits 在这里插入图片描述 一个空格代表一个bit,1byte就是8 ...

最新文章

  1. Cognos配置oracle类型内容库时报错
  2. 01-Secure Payload Dispatcher (SPD)
  3. Coursera吴恩达《神经网络与深度学习》课程笔记(2)-- 神经网络基础之逻辑回归
  4. c语言各个英文的作用,C语言最重要的知识点复习资料(国外英文资料).doc
  5. Tensorflow学习笔记---1--Python基本操作
  6. 概率论与数理统计大纲
  7. Mac如何将图片一键转pdf
  8. python影评_用Python分析18万条《八佰》影评,看看观众怎么说?
  9. Markdown基操
  10. 2.Button按钮实例:普通按钮和图片按钮
  11. 真正“透明”的PNG图片
  12. oracle 建立分区,oracle 分区表的建立方法
  13. NLP中的attention机制总结
  14. 三分钟告诉你为什么再昂贵的普洱茶都只是用棉纸包装?
  15. 远程连接服务器突然失败
  16. C++调用opencv完成运动目标捕捉
  17. [供应链•案例篇] 天能集团:解读电池制造龙头实现盈利断层第一的关键
  18. 51单片机免冷启动下程序不用断电重启也能下载
  19. python获取指定扩展名的文件_python查找目录下指定扩展名的文件实例
  20. 知道swift为什么是面向协议编程么?不知道,还不快来学习!

热门文章

  1. oracle instr查询字符串
  2. 常见问题摘要(生活篇)
  3. ASP.NET WebAPI 自定义ControllerSelector
  4. Hibernate延时加载
  5. LOADRUNNER8.1中文版加10000客户端破解补订
  6. +++程序员高手修炼之路
  7. java怎么把system.out的东西输出到文件上
  8. java开发一款模拟写字板系统
  9. 王者荣耀服务器维护啥时候结束,王者荣耀维护几点结束今天?11月10日维护公告...
  10. 解决Pycharm窗口一闪而过的问题