我之前看到过一些类似的问题,但我还没有找到一个完全描述我当前问题的问题,所以这里有:
我有一个页面,通过AJAX加载一个大的(介于0.5和10 MB之间)JSON文档,以便客户端代码可以处理它.加载文件后,我没有任何我不期望的问题.但是,下载需要很长时间,因此我尝试利用XHR Progress API呈现进度条,以向用户指示文档正在加载.这很好用.
然后,为了加快速度,我尝试通过gzip和deflate压缩服务器端的输出.这也很有效,但是,我的进度条停止了工作.
我已经研究了一段时间的问题,发现如果Content-Length没有使用请求的AJAX资源发送正确的头文件,onProgress事件处理程序就无法按预期运行,因为它不知道它在下载中有多远.发生这种情况时,lengthComputable会false在事件对象上设置一个名为call的属性.
这是有道理的,所以我尝试使用未压缩和压缩的输出长度显式设置标头.我可以验证是否正在发送标头,我可以验证我的浏览器知道如何解压缩内容.但onProgress处理程序仍然报告lengthComputable = false.
所以我的问题是:有没有办法使用AJAX Progress API来压缩/缩小内容?如果是这样,我现在做错了什么?
这是资源在Chrome网络面板中的显示方式,表明压缩正在运行:
这些是相关的请求标头,显示请求是AJAX并且Accept-Encoding设置正确:
GET /dashboard/reports/ajax/load HTTP/1.1
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.99 Safari/537.22
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Run Code Online (Sandbox Code Playgroud)
这些都是相关的响应报头,显示出Content-Length和Content-Type被正确设置:
HTTP/1.1 200 …Run Code Online (Sandbox Code Playgroud) 我想模仿gzcat的功能 尾巴-n.
这对于有大量文件(几GB左右)的时候会有所帮助.我可以从头开始读取这样一个文件的最后几行吗?我怀疑这是不可能的,因为我猜gzip,编码将取决于所有以前的文本.
但是我还是想听听是否有人尝试过类似的事情 - 也许是通过可以提供这种功能的压缩算法进行调查.
我正在研究缩小JavaScript代码的不同方法,包括常规的JSMin,Packer和YUI解决方案.我对新的Google Closure Compiler非常感兴趣,因为它看起来非常强大.
我注意到Dean Edwards打包器有一个功能,可以排除以三个分号开头的代码行.这对于排除调试代码很方便.例如:
;;; console.log("Starting process");
Run Code Online (Sandbox Code Playgroud)
我花了一些时间来清理我的代码库,并希望添加这样的提示以轻松排除调试代码.为此做准备,我想弄清楚这是否是最佳解决方案,或者是否有其他技术.
因为我还没有选择如何缩小,我想以一种与我最终使用的最小化器兼容的方式清理代码.所以我的问题是:
使用分号是一种标准技术,还是有其他方法可以做到这一点?
Packer是唯一提供此功能的解决方案吗?
是否可以采用其他解决方案以这种方式工作,或者他们是否有其他方法来实现这一目标?
我最终可能会开始使用Closure Compiler.现在有什么我应该做的准备吗?
是否有任何无损压缩方法可以应用于浮点时间序列数据,并且将显着优于比如将数据作为二进制文件写入文件并通过gzip运行?
降低精度可能是可以接受的,但它必须以受控方式发生(即我必须能够设置必须保留多少位数的界限)
我正在处理一些大型数据文件,这些文件是一系列相关的doubles,描述了时间的函数(即值是相关的).我通常不需要完全double精确但我可能需要更多float.
由于图像/音频有专门的无损方法,我想知道是否存在任何专门用于这种情况的方法.
澄清: 我正在寻找现有的实用工具,而不是描述如何实现这样的东西的论文.在速度上与gzip相当的东西会很棒.
我已经看过很多关于如何在c#中压缩单个文件的教程.但我需要能够创建一个普通的*.zip文件,而不仅仅是一个文件..NET中有什么可以做到的吗?你会建议什么(记住我是在严格的规则下,不能使用其他库)
谢谢
任何人都可以告诉我压缩和解压缩java中的tar.gzip文件的正确方法我一直在搜索,但我能找到的最多是zip或gzip(单独).
我之前使用过UPX来减少我的Windows可执行文件的大小,但我必须承认我对这可能产生的任何负面影响都很天真.所有这些包装/拆包的缺点是什么?
是否存在任何人建议NOT UPX-ing可执行文件的情况(例如,在编写DLL,Windows服务或定位Vista或Win7时)?我在Delphi中编写了大部分代码,但我也使用UPX来压缩C/C++可执行文件.
另外,我没有尝试使用UPX来保护我的exe不被反汇编程序,只是为了减少可执行文件的大小并防止粗略的篡改.
简单的机器学习问题.可能有很多方法可以解决这个问题:
有4个可能的事件无限流:
'event_1', 'event_2', 'event_4', 'event_4'
事件不是完全随机的.我们假设大多数事件都有一些复杂的模式,其余的事件只是随机的.我们提前不知道这些模式.
收到每个事件后,我想根据事件过去的顺序预测下一个事件的内容.所以我的问题是:我应该为这个预测器使用什么机器学习算法?
然后,预测器将被告知下一个事件实际上是什么:
Predictor=new_predictor()
prev_event=False
while True:
event=get_event()
if prev_event is not False:
Predictor.last_event_was(prev_event)
predicted_event=Predictor.predict_next_event(event)
Run Code Online (Sandbox Code Playgroud)
问题在于预测者应该维持多长时间的历史,因为维持无限的历史将是不可能的.我会把这个留给你回答.但实际上答案不可能是无足轻重的.
因此,我认为预测必须通过某种滚动的历史来完成.因此,添加新事件并使旧事件过期应该相当有效,并且不需要重建整个预测器模型.
具体的代码,而不是研究论文,将为您的回复增添巨大的价值.Python或C库很不错,但任何事情都可以.
更新:如果在每一轮中同时发生多个事件,该怎么办?这会改变解决方案吗?
python compression machine-learning neural-network evolutionary-algorithm
我刚刚在http://blip.tv/play/Aeu2CAI上看到了第一个Git教程.
Git如何存储所有文件的所有版本,以及它如何在空间上比Subversion更经济,而Subversion只保存最新版本的代码?
我知道这可以使用压缩来完成,但这会以速度为代价,但这也说Git要快得多(尽管它获得最大值的是它的大部分操作都处于脱机状态).
所以,我猜是这样的
uncompression + work仍然比network_fetch + work我对么?甚至接近?
具体来说,那里有哪些程序以及压缩率最高的程序?我试过谷歌搜索它,但似乎经验会胜过搜索结果,所以我问.
compression ×10
javascript ×2
.net ×1
algorithm ×1
binary-data ×1
c# ×1
c++ ×1
delphi ×1
git ×1
github ×1
gzip ×1
java ×1
jquery ×1
minify ×1
performance ×1
python ×1
random ×1
tar ×1
time-series ×1
upx ×1
winapi ×1
winforms ×1
zip ×1