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

    在项目中查询时,因数据量大,导致网络传输很慢,这就需要在服务器端查询出的数据进行压缩处理,后传输完了在客户端进行解压处理(此为在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C---已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。

已知正整数n是两个不同的质数的乘积&#xff0c;试求出较大的那个质数。 思路&#xff1a;由题意可知&#xff0c;n为两个质数之积&#xff0c;也就是说只要找到一个数能够被n整除&#xff0c;这个数一定是质数&#xff01;&#xff01;&#xff01;2为最小的质数&#xff0c;…

isnumeric_Python字符串| isnumeric()方法与示例

isnumericisnumeric() is an in-built method in Python, which is used to check whether a string contains only numeric values or not. isnumeric()是Python中的内置方法&#xff0c;用于检查字符串是否仅包含数字值。 Numeric contain all decimal characters and the f…

合并文件夹中子目录_01 Linux之统计文件夹中文件个数以及目录个数

案例分析&#xff1a;今天遇到了一个需要统计路径下目录个数的问题如果一个一个的去数会很麻烦&#xff0c;找到了一篇文章刚好提到这个&#xff0c;于是我将方法整理了一下。该方法的链接&#xff1a;Linux统计文件夹中文件个数以及目录个数_SG匚hang的博客-CSDN博客_linux统计…

关于Makefile,Makefile.in,Makefile.am,Configure功能及相互关系的问题

目录makefile写法1. 简介2. 上路之前3. 一个简单的例子4.说明&#xff1a;4.1、autoscan4.2、 configure.scan4.3、aclocal4.4、autoconf4.5、Makefile.am4.6、 automake4.7、Makefilemakefile写法 在 Unix 上写程式的人大概都碰过 Makefile&#xff0c;尤其是用 C 来开发程式…

修改主键的SQL

declare defname varchar(100)declare cmd varchar(500)declare tablename varchar(100)declare keyname varchar(100) Set tablenameTemp1Set keynameid --需要設置的key,分隔 select defname name FROM sysobjects so JOIN sysconstraints sc ON so.id sc.constid …

西安理工大学863(转载)

原创&#xff1a;https://blog.csdn.net/mzj15101229871/article/details/107613162 &#xff08;博主总结的很完整&#xff0c;很厉害&#xff0c;本人为了查看方便&#xff0c;才转载的。本人只是个小白~&#xff09; 第一章 绪论 考试大纲 1&#xff09;了解数据元素、数…

原理简介_消息通信的利器MQTT协议简介及协议原理

- 没用过但是必须得知道系列 -前言&#xff1a;相比于 XMPP&#xff0c; MQTT 的简单轻量受到了不少工程师的喜爱&#xff0c;从物联网到传统的消息服务&#xff0c;简单可依赖的 MQTT 到底为何让人如此着迷呢&#xff1f;MQTT 协议&#xff0d;MQTT 协议简介及协议原理MQTT(Me…

stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例

stl vector 函数C vector :: pop_back()函数 (C vector::pop_back() function) vector::pop_back() is a library function of "vector" header, it is used to deletes an element from the end of the vector, it deletes the element from the back and returns …

rtmp协议分析(Message 消息,Chunk分块)

RTMP详细分析&#xff08;三次握手&#xff09; librtmp分析&#xff08;发送数据包处理&#xff09; librtmp分析&#xff08;接收数据包处理&#xff09; 目录1、Message(消息)2、Chunking(Message 分块)2.1、 Basic Header(基本的头信息)2.1.1、Basic Header为1个字节时2.1.…

【文摘】 雪念——作者:蓝色妖姬

引用原文地址&#xff1a;点我 我本是惆怅之人&#xff0c;拥有不了所谓的快乐&#xff0c;笔尖谱写不出唯美的风花雪月&#xff0c;只是流露这淡淡的疼痛&#xff0c;淡淡的哀伤。——蓝色妖姬。 喜欢雪&#xff0c;喜欢伫立在雪地里&#xff0c;凝视着片片雪花从眼前飘落。 心…

将Sharepoint Server 2010部署到WINDOWS 7

首先祝CNBLOGS上的筒子们新年快乐。Sharepoint 2010 BETA版发布已经有段时间了&#xff0c;总是感觉MS的步伐要比我们这些追逐他的人快很多&#xff0c;不过确实他的每一次革新总给我们带来了惊喜。 前几天报名参加了SHAREPOINT 2010 DAY 活动(详情)&#xff0c;等待着1月16日体…

嵌入式实训-day1

完全复制一个文件的内容到另外一个文件 思路解析&#xff1a; 首先我这里使用了三个.c文件&#xff0c;分别是&#xff1a;yanyu.c、yanyu_old.c、yanyu_now.c 其中yanyu.c负责将yanyu_old.c中的内容读入到buff缓冲区中&#xff0c;然后再从buff缓冲区中将数据写入到yanyu_no…

stl中copy()函数_std :: rotate_copy()函数以及C ++ STL中的示例

stl中copy()函数C STL std :: rotate_copy()函数 (C STL std::rotate_copy() function) rotate_copy() function is a library function of algorithm header, it is used to rotate left the elements of a sequence within a given range and copy the rotating elements to…

计量经济学建模_浅谈统计学模型(兼计量经济学模型)

计量经济学模型是从统计学模型中衍生出来的&#xff0c;故将它们一并放在此处进行说明。实际上&#xff0c;很多人在很久之前就督促我写一篇统计学和计量经济学模型的文章&#xff0c;但我太懒惰&#xff0c;一直拖到现在&#xff0c;也是十分汗颜。先讲一些统计学上的基础故事…

linux文件存储、inode、硬链接、软链接

目录介绍inode的内容inode的大小inode号码目录文件硬链接软链接介绍 文件储存在硬盘上&#xff0c;硬盘的最小存储单位叫做"扇区"&#xff08;Sector&#xff09;。每个扇区储存512字节&#xff08;相当于0.5KB&#xff09;。操作系统读取硬盘的时候&#xff0c;不会…

OSPF路由器建立全毗邻关系的状态转换过程

1&#xff09;Down状态&#xff1a;路由器不与其他任何路由器交换任何OSPF消息&#xff1b;2&#xff09;Init状态&#xff1a;接收方路由器已经接收到对端路由器的hello包&#xff0c;但是没有从对端路由器的hello包中发现自己的router-id.。此时通信是单向的&#xff1b;3&am…

JavaScript打包与解包工具

JavaScript Packer&#xff1a; http://packer.skiyo.cn/ JavaScript UnPacker&#xff1a; http://packer.skiyo.cn/unpacker.html 转载于:https://www.cnblogs.com/springmvc-hibernate/archive/2010/09/17/2484233.html

工具栏的打印图标不见了_显示屏下方的工具栏里的小图标不见了怎么弄回来

优质回答 回答者&#xff1a;昂天大笑出门去一般右下角那些小图标都是与系统同步启动的一些功能&#xff0c;有的是没必要让它们同步启动的&#xff0c;启动的东西越多&#xff0c;系统反应就越慢。你说的工具栏里的小图标没了&#xff0c;可能是那些工具不能和系统同步启动了&…

使用sshfs挂载linux远程服务器目录到windows

目录下载winfsp 和 sshfs-win使用方式1、添加连接2、连接3、其他操作修改&#xff1a;删除&#xff1a;下载winfsp 和 sshfs-win 前往 github 对应项目的 release 中下载最新版本&#xff1a; sshfs-win&#xff1a;https://github.com/billziss-gh/sshfs-win/releases winfs…

法学学士学位的完整形式是什么?

LL.B&#xff1a;拉丁文的Legum Baccalaureus(俗称法学学士) (LL.B: Legum Baccalaureus in Latin (commonly known as Bachelor of Laws)) LL.B is an abbreviation of Legum Baccalaureus in Latin which is generally known as Bachelor of Laws. It is a bachelors degree …