我有一个访问WCF Web服务的silverlight 2 beta 2应用程序.因此,它目前只能使用basicHttp绑定.Web服务将返回相当大量的XML数据.从带宽使用的角度来看,这看起来相当浪费,因为如果压缩,响应会小5倍(我实际上将响应粘贴到txt文件中并压缩它.).
请求确实有"Accept-Encoding:gzip,deflate" - 有没有办法让WCF服务gzip(或以其他方式压缩)响应?
我确实找到了这个链接,但它确实看起来有点复杂的功能应该是开箱即用的恕我直言.
好的 - 首先我使用System.IO.Compression作为答案标记了解决方案,因为我无法"看起来"让IIS7动态压缩工作.事实证明:
在IIS7动态压缩是一起工作的人.只是Nikhil的IE开发人员Helper插件没有显示它的工作原理.我的猜测是,由于SL将Web服务调用关闭到浏览器,浏览器"在幕后"处理它,而Nikhil的工具永远不会看到压缩响应.我能够通过使用Fiddler来确认这一点,Fiddler监视浏览器应用程序外部的流量.事实上,在提琴手中,响应是gzip压缩的!
System.IO.Compression解决方案的另一个问题是Silverlight CLR中不存在System.IO.Compression.
因此,从我的角度来看,在Silverlight中启用WCF压缩的EASIEST方法是在IIS7中启用动态压缩并且根本不编写任何代码.
我试图用YUI压缩器缩小一些文件.但是,我似乎在2行代码上遇到错误,这会阻止压缩.jcarouselLite的.js文件包含1个错误,而我自己的代码包含另一个.
我已经缩小了它,在两种情况下,它看起来像jQuery中使用的float属性导致了这一点.这条线是:
li.css({overflow: "hidden", float: o.vertical ? "none" : "left"}); (jcarousellite)
$("#now-playing .js-kit-rating div:first").css({width: "80px", float: "right"}).addClass("clearing"); (own code)
Run Code Online (Sandbox Code Playgroud)
通过YUI压缩器运行jCarouselLite代码可以看到错误的工作示例,但基本上返回的错误是无效的属性id.
是否有人与YUI压缩机有类似的问题?
我想知道是否有人知道gzip压缩在移动设备上是否与在台式计算机上一样有用.
手机会使用更多电池吗?或者它会节省一些因为节省带宽?页面页面加载速度会更快,或者这些有限的设备上的解压缩过程会变慢吗?
压缩数据是否实际到达最终用户还是由3G提供商在某处解压缩?(这可能是一个愚蠢的问题,对不起).
谢谢.
我需要将一个大表导出到csv文件并压缩它.
我可以使用来自postgres的COPY命令导出它 -
COPY foo_table to '/tmp/foo_table.csv' delimiters',' CSV HEADER;
然后可以使用gzip压缩它 -
gzip -c foo_table.csv > foo.gz
这种方法的问题是,在得到最终的压缩文件之前,我需要创建这个中间的csv文件,它本身就很庞大.
在csv中有导出表的方法并一步压缩文件吗?
此致,Sujit
我Fiddler用来调试我的应用程序.每当响应被服务器压缩而不是解压缩响应时,Fiddler会显示不可读的二进制数据:
/* Response to my request (POST) */
HTTP/1.1 200 OK
Server: xyz.com
Date: Tue, 07 Jun 2011 22:22:21 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
14
????????????????
0
Run Code Online (Sandbox Code Playgroud)
如何解压缩响应?
我需要自动化R来读取一个zip文件中的csv数据文件.
例如,我会输入:
read.zip(file = "myfile.zip")
Run Code Online (Sandbox Code Playgroud)
在内部,将要做的是:
myfile.zip到临时文件夹read.csv如果zip文件中有多个文件,则会引发错误.
我的问题是获取包含在zip文件中的文件的名称,在orded中提供它来执行read.csv命令.有谁知道怎么做?
UPDATE
这是我根据@Paul答案写的函数:
read.zip <- function(zipfile, row.names=NULL, dec=".") {
# Create a name for the dir where we'll unzip
zipdir <- tempfile()
# Create the dir using that name
dir.create(zipdir)
# Unzip the file into the dir
unzip(zipfile, exdir=zipdir)
# Get the files into the dir
files <- list.files(zipdir)
# Throw an error if there's more than one
if(length(files)>1) stop("More than one data file inside zip") …Run Code Online (Sandbox Code Playgroud) 有很多有趣的文件可以chrome://resources/*使用谷歌浏览器访问.
在Linux上的内容是在/opt/google/chrome/resources.pak.我知道我可以从http://chromium.googlecode.com/svn/trunk/获取所有来源,但我想解压缩resource.pak文件.
file resources.pak 报道只是垃圾.
需要明确的是,问题不在于从哪里获取这些资源.问题是resources.pak文件格式是什么以及如何解压缩?
考虑这个JSON响应:
[{
Name: 'Saeed',
Age: 31
}, {
Name: 'Maysam',
Age: 32
}, {
Name: 'Mehdi',
Age: 27
}]
Run Code Online (Sandbox Code Playgroud)
这适用于少量数据,但是当您想要提供大量数据(例如数千条记录)时,以某种方式阻止响应JSON中的属性名称重复似乎是合乎逻辑的.
我用Google搜索了这个概念(DRYing JSON),令我惊讶的是,我没有找到任何相关的结果.当然,一种方法是使用简单的自制算法压缩JSON,然后在使用它之前在客户端解压缩它:
[['Name', 'Age'],
['Saeed', 31],
['Maysam', 32],
['Mehdi', 27]]
Run Code Online (Sandbox Code Playgroud)
但是,最好的做法是比每个试图重新发明轮子的开发人员更好.你们有没有看到一个众所周知的广为接受的解决方案?
我有一个Web应用程序(ruby on rails),它将一些YAML作为隐藏输入字段的值发送.
现在我想减少发送到浏览器的文本的大小.在最小数据中发送的最有效的无损压缩形式是什么?我可以在服务器端产生额外的压缩和解压缩成本.
JPEG是一种有损压缩方案,因此解压缩 - 操作 - 重新压缩通常会进一步降低每一步的图像质量.是否可以旋转JPEG图像而不会造成进一步的损失?从我对JPEG算法的了解很少,它似乎可以通过一些努力避免进一步的损失.哪些常见的图像处理程序(例如GIMP,Paint Shop Pro,Windows照片库)和图形库在执行旋转时会导致质量损失,哪些不会?
compression ×10
gzip ×4
http ×2
javascript ×2
backup ×1
dry ×1
fiddler ×1
graphics ×1
jpeg ×1
jquery ×1
json ×1
postgresql ×1
r ×1
ruby ×1
silverlight ×1
wcf ×1
yui ×1