问题标签 [network-efficiency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript中两个字符串之间的网络效率差异
我有一个 Web 应用程序,其中客户端编辑器正在编辑服务器端已知的非常大的文本。
客户端可以对此文本进行任何类型的修改。
以服务器理解的方式传输结果差异的最网络效率的方式是什么?此外,由于这将发生在客户端(Javascript),我也希望它“快”(或至少不会明显慢)
一些场景:
- 用户修改一个字符
- 用户在随机位置修改多个句子
- 用户删除所有内容并导致空白文本。
我不能使用类似 diff 的语法,因为它不是网络高效的,它会检查行,示例 1 和 3 会产生可怕的差异(尤其是最后一个,结果将超过旧的本身)。
有人有这方面的经验吗?用户对大量数据进行操作——大约 3-5MB 的文本,上传整个“新”内容是一个很大的禁忌。
需要明确的是,我正在寻找传输的“协议”,字符串比较不是问题。
html - 对于快速网络来说,HTML 文本是否过多?
有人知道 HTML 作为传输标记语言的效率吗?在我看来,拥有结束标签而不仅仅是一个结束大括号(或只是</>
)会在文件中添加大量文本。带宽是一种宝贵的资源,当数十亿(万亿?)的 HTML 文件不断在世界范围内传输时,这些结束标签就会加起来。
我的问题是它们加起来是否足以产生重大影响。使用更简短的结束标签,页面加载速度会显着提高吗?
.net - 使用 .NET 在慢速网络中移动不同大小文件的最佳方式
我正在构建一个 .NET 远程客户端/服务器,它将传输数千个不同大小的文件(从几个字节到数百 MB 不等),我想要一些关于实现此目标的最佳方法的反馈。在我看来,有几个选择:
- 将整个文件序列化到我的远程处理对象中并一次传输,无论大小。这可能是最快的,但是传输过程中的失败需要重新传输整个文件,无法恢复。
- 如果文件大小大于小文件(如 4KB),请将其分成 4KB 的块并远程处理,在服务器上重新组装。除了复杂性之外,由于持续的往返和确认,它更慢,尽管任何一个部分的失败都不会浪费太多时间。
- 在我的应用程序中包含 FTP 或 SFTP 服务器之类的东西 - 客户端将通知服务器它开始使用远程处理,上传文件,然后使用远程处理来通知完成。我想在我的应用程序中包含所有内容,而不是需要单独的 FTP 服务,但如果需要,我愿意接受这个选项。
- 使用某种声明的 TCP 连接或 WPF 或其他为处理故障或能够执行某种检查点/恢复而构建的传输方法。
- 还有其他我想念的吗?
最灵活/可靠的传输方式是什么?我不太关心速度,但更关心可靠性 - 我希望文件移动,即使它很慢。由于客户端和服务器将是多线程的,如果连接允许,我可以同时传输多个文件。
感谢您的反馈 - 我将提供赏金以获得有关人们实现此目标的方法的一些建议。
google-app-engine - 将编码键映射到 appengine 中的较短标识符
我想向客户端发送唯一引用,以便客户端可以引用特定对象。appengine 提供的编码密钥有时有 50 个字节长,而我可能只需要两三个字节(我可能希望需要四五个字节,但暂时不会!)。
发送较大的密钥实际上非常昂贵,因为我可能一次发送 400 个引用。
所以,我想将这些长键映射到更短的键。一个明显的解决方案是将映射存储在数据存储中,但是当我发送 400 个对象时,我正在执行 400 个额外的查询,对吗?也许我也可以通过在内存缓存中保存映射副本来减轻费用。有没有更好的办法?
我可以从 appengine 创建并使用它的未编码密钥中提取数字吗?我只需要我使用的任何 id 对每个实体类型都是唯一的,而不是在整个应用程序中。
谢谢,
莱利
serialization - GWT 是否有效地序列化 java.lang.Longs?
我通过 GWT RPC 机制从客户端到服务器来回发送对象 ID。ID 以 Long(8 字节)的形式从数据存储中出来。我认为我所有的 id 只需要 4 个字节,但可能会发生随机事件,给我一个 5 字节(或其他)的值。
GWT 是否会聪明地将这些值打包成一些可变长度的编码,从而平均节省空间?我可以指定它在某处这样做吗?或者我应该编写自己的代码将 Long 复制到 int 并注意那些异常情况?
谢谢~
android - Android - 从远程服务器加载多个图像的有效方法
我有一个 Android 应用程序,它可以从 php 远程服务器检索数据(图像+文本)并将它们显示在 GridView 中。我正在使用 Loaders 在后台进行操作。我对图像和文本有单独的连接,因为检索图像需要更长的时间,我想立即显示文本。从 MySQL 检索文本后,在服务器上使用 Json 对文本进行编码。在应用程序上,我正在解析 Json 对象并根据需要显示文本。
问题在于图像。我不确定用 Json 编码图像是否是个好主意。此外,图像在数据库中保存为 blob,为了使用 Json 对它们进行编码,我需要使用 base64_encode() 之前效率不高。我看过很多关于这个的帖子,但是当你必须得到一张图片时,它总是一个简单的例子。就我而言,我将检索多达 30 张小尺寸图像。
我的问题是,我可以继续我刚才介绍的内容,但似乎应该有更好的方法来做到这一点。你怎么看待这件事?我走错路了吗?
此外,我还在考虑是否可以在网格视图中单独显示每个图像,就像在“Google Play 应用程序”的 GridView 中一样(而不是等待所有图像都准备好)。我可以采取什么方法来实现这一目标?
先谢谢各位了!
database - 我应该使用异步调用吗?
我有一个 ac# 应用程序,它读取大约 1500 个站点 url 的表格,这些客户自我们开始以来一直在公司工作。基本上,我正在对这些 url 运行 whois 查询,并查看它们是否仍然是客户端。该应用程序有效,但大约需要一个小时才能完成。使用异步 whois 查询会更好吗?大概可以节省多少时间。这是我正在使用的示例 whois 查询代码块。
另外,如果有人对如何改进此代码或运行异步命令有任何提示,请帮助我,因为我只是一名实习生。谢谢
networking - 令牌环协议效率和周期时间?
我从一本书 Forouzon 中阅读了令牌环协议。
根据书,
令N为环中的站数,THT为令牌持有时间,Tt为数据包的传输时间,Tp为数据包在 Channel/Link 上的传播时间。
然后Cycle Time = n * THT + Tp(这是令牌的周期时间)
和效率=(有用时间)/(循环时间)
这里有用时间表示为N * Tt。(证明为令牌传递的单个周期中每个站的传输时间)
因此证明效率 = (N * Tt)/(n*THT + Tp )
我的问题是:为什么不在循环时间中添加这个 (N*Tt)?
所以效率可以变成效率 = (N * Tt)/(n*THT + Tp +N * Tt )
r - sna R包效率函数不一致
我有三个不同的矩阵,他们的 Krackhardt 效率对我来说似乎是错误的。前两个矩阵在拓扑上是等价的,但它们的效率不同。任何人都有不一致的解释?
对于第一个矩阵,效率为 1:
不同效率的等价矩阵:
第三个矩阵有两个具有最少边数 (n_i-1) 的分量,但它们的效率不是一个。它与帮助中的公式都不匹配:
第三个矩阵:
java - 有一个始终打开的连接更好,还是每次需要某些东西时建立一个连接更好?
目前,我的程序每次需要时都会建立与服务器的连接,并在获取所需内容后关闭连接。
如果我从程序开始就运行一个全局连接,这是更好还是更差的做法,会有什么不同。就像是
只是在我需要的地方引用它