代码之家  ›  专栏  ›  技术社区  ›  pauldoo

如何为必须一致的动态内容构建web请求

  •  1
  • pauldoo  · 技术社区  · 12 年前

    我有一个动态生成的HTML页面,其中包含动态生成的图像(jpeg)。对于我的应用程序来说,这两个动态生成的资源彼此一致是很重要的。(HTML包含一些我覆盖在图像顶部的元素。)这有点棘手,因为这两个资源当然是在不同的HTTP请求中获取的。

    在我的服务器代码中构造这一点的最佳方式是什么?play支持特定的东西来处理这个问题吗?


    脑海中浮现出几个选项:

    第一种是在请求HTML页面期间计算图像的参数,并将这些参数放入图像的URL中。不幸的是,我认为这里有很多状态不适合URL。

    另一种选择可能是在请求HTML的过程中生成图像(或仅生成图像的参数),并将其存储在服务器端的某个位置。然后,当图像请求出现时,我可以返回预先生成的图像。这个解决方案唯一的问题是,我现在需要担心生成的图像服务器端的使用寿命,这感觉很恶心。

    1 回复  |  直到 12 年前
        1
  •  1
  •   biesior    12 年前

    事实上,你的两种方法都是正确的,无论如何,我会选择第一种:原因很简单,如果你的请求在渲染页面之前因任何原因而失败,你会失去一些用于渲染图像的资源,这些资源永远不会被使用。另一件事是,它(可能)应该能够从任何请求渲染图像,而不仅仅是从控制器(如第二种方法所述),所以最好创建一个能够基于请求参数渲染的操作。

    结论(注意,这只是我的猜测)-也许你可以将所有需要的参数编码为单个字符串(即除以一些字符,比如: 1234_w600_h200.jpg ,这意味着:从记录ID所在的数据库中获取图像 1234 并使用创建缩略图 width 600px height 200px 。或者更简单(afaik闪烁使用此选项) 1234s.jpg , 1234m.jpg , 1234l.jpg 哪里 s , m , l appendix代表一些预定义的缩略图大小。

    因此,最后,您需要从控制器传递到视图的只是DB记录的第一部分ID,以及您可以直接在视图中添加的其他部分(维度),您可以根据需要进行添加。。。例如: 下载小型、中型或大型版本。。。