客户端与服务器映像进程并显示

问题描述 投票:0回答:1

客户端与服务器映像进程。

我们有一个大型系统,它运行在JSF(primefaces)EJB3上,有时运行JavaScript逻辑(比如使用firebase和东西)。

所以我们遇到这个问题,我们有一个servlet来提供一些图像。后端接受查询,然后从DB中提取一些blob img,将BLOB转换为字节数组,将其发送到浏览器会话内存,servlet将其提供给ulr-OurSite / image / idImage中的服务。前端由<img>(url/image/id)</img>称呼它并且到目前为止工作正常。

然后我们使用一种新的直接方式来显示img,我们将BLOB / RAW数据发送到前端,然后我们将它们转换为Base64.imageReturn。并将其传递给html。

 Base64 codec = new Base64();
                String encoded = codec.encodeBase64String(listEvidenciaDev.get(i).getImgReturns());

对于几乎所有情况,两者都有效。

注意:我们之前没有尝试过,因为我们无法通过序列化对象层和RMI层传递RAW数据。现在我们可以。

所以现在有两种方法。

要么我们将数据发送到servlet并将其放在一些url上,这意味着后端完成所有工作,而前端只调用url

或者我们将数据发送到前端,这将产生一些魔法并将其转换为img。

这带来了两个问题。

  1. 如果我们发送到前端RawObject或让他们调用URL来显示他的图像内容,最终用户下载相同数量的数据?这很重要,因为我们有一些远程分支机构,互联网连接很差
  2. 值得将艰苦的工作传递到前端(转换数据)或后端(转换和发布)?

编辑:

我的问题不是BLOB(我称之为RAW数据)大于base64

它是;将数据作为对象传递并将其转换为可读图片比使用实际IMG从我们的servlet传递url并将其加载到html上更加重要的互联网带宽?

javascript web optimization primefaces frontend
1个回答
0
投票

我确实选择关闭这个答案,因为我们做了一些测试,前端的带宽使用量相同。

无论如何,我们都使用这两种解决方案

如果我们不想对前端进行大量编码,我们会为这些图像设置一个servlet(带有更多代码和更多服务器负载)。我们寻找特定案例的最佳优化。

© www.soinside.com 2019 - 2024. All rights reserved.