是否可以(并支持跨浏览器)将图像嵌入到AJAX响应的XML中,然后使用JavaScript加载该图像?
我有一个系统可以根据运行它的会话数进行一些计算。然后将结果绘制成图表,并分两部分返回:
1)包含有关图表,总计和图像地图数据的信息的XML,允许用户点击相关区域。
2)图形图像。
由于数据可以在两个请求之间发生变化(并且计算起来可能很昂贵),我宁愿在单个请求中执行此操作(使用XML返回图像)。当前实现缓存了一小段时间的统计信息,以便多个请求的结果仍然匹配。由于需要缓存的数据量将会增加(从大约2.5K到大约1.2MB),我想尝试另一种方法。
注意:我不想使用内联b64 PNG图像,因为IE不支持它们。
答案 0 :(得分:3)
您是否可以将图像存储在服务器上并将URL发送给客户端?
答案 1 :(得分:3)
由于这似乎是值得的更多工作,我已经决定更简单的解决方案:
1)将XML数据发送给客户端,并附上要绘制内容的详细信息。
2)客户端发送图像请求,包括图形数据(类似于Google Chart API)。
这将图表呈现与数据分离,然后可以在将来用于生成其他数据集的通用图表。另一个好处是它不需要任何缓存服务器端,因为只使用了1个请求。
答案 2 :(得分:2)
答案 3 :(得分:1)
您是否考虑过使用Google's Chart API?
答案 4 :(得分:1)
那么actually you can但它可能不值得。看起来像基于矢量的方法(如canvas)和VML alternatives for IE将是渲染图形的更好选择。然后,您只需将图表数据传递给浏览器。
答案 5 :(得分:0)
如果存储不是一个选项。在内存中创建映像并将二进制映像数据刷新为脚本响应,如php文件。只需使用正确的标题:
Content-type: image/png
每次都会重新生成图像。
为了绝对确保图像不会被缓存,请在查询字符串中添加一些随机参数。
答案 6 :(得分:0)
您可以将图像返回到ajax-client,然后将XML数据包含在图像的X-HTTP-Header中。
但是你需要知道是否可以从ajax-client读取X-header。