如何通过dojo.xhr
收到图片?
我有一个datagrid
,点击任意一行,
我想从服务器获取一个图像(取决于所选的行)。图像将作为对话框弹出。
我没有看到任何handleAs
参数适用于此。
目前我有两个选择,
1)在对话框中定义<image>
,onClick
事件显示对话框,并将src
参数设置为服务器图像返回链接(这看起来不异步)
2)使用Base64
对图像进行编码,传递为json。(以及如何在浏览器中将其转换回图像?)
我对以上任何一项都不满意。
请建议。感谢。
修改
2)Contd。找到了通过设置src="data:image/jpeg; base64, *deferredObj*"
标记的<image>
属性来实现此功能的方法,但对我而言,这并不是一种明显的方法。
答案 0 :(得分:0)
您不应该使用image64的base64编码。 IE对data:image
的支持很差。
图片网址是正确的方法。解决方案1)更好。如果性能不佳,请使用image preloading进行改进。
答案 1 :(得分:0)
在构建网格结构时,请包含formatter: myFunction
属性。然后使用myFunction
调用dojo.xhrGet来获取图像。所以,像这样:
grid = new dojox.grid.dataGrid({
id: 'grid',
structure: gridStructure
});
gridStructure = [
{field: 'id', name: 'ID', formatter: myFunction}
];
myFunction = function(){
dojo.xhrGet(
//retrieve image here
);
}
答案 2 :(得分:0)
感谢您分享您的想法和时间。我已经意识到XHR不是为二进制数据设计的(如图像) 我相应地更改了我的应用程序的设计。