我有一个网页上有很多小图片。在典型情况下,用户单击图像并期望它随新图像而变化。
要求:
问题:这里应该使用什么Ajax技术?我对Ajax很新,对模式感觉不太稳定。应该是Json还是别的什么?
任何代码示例都非常受欢迎且非常有用。
谢谢。
答案 0 :(得分:1)
听起来你需要在图像对象上有一个事件观察者。在该图像对象上,您可以拥有各种自定义属性,例如imageid =“2”等。在单击被观察的元素时,您将读取元素的属性并将它们传递给AJAX调用。我不确定图像是否为数据库所知,或者它是否可以在页面本身上使用。也许后退/上一个按钮?在任何一种情况下,AJAX调用都可以直接返回JavaScript然后被解析以更新DOM并用新的图像源替换图像,或者它可以返回JSON响应,然后需要通过AJAX回调读取和解析然后更新DOM。最简单的方法是返回被解析的JS代码,但我更喜欢将我的所有JavaScript放在一个文件中,而不是将它与服务器端代码混合在一起。
这实际上取决于您使用的AJAX库。
使用jQuery,你可能会做这样的事情。
$(“#buttonImage”)。click(function(){
var imageid = $(this).attr('imageid');
$ .getJSON(“/ controller / get_image /”+ imageid, 功能(数据){ $(“#buttonImage”)。attr(“src”,data.imagesrc); });
});
你的/ controller / get_image / 123会返回一个JSON响应,如...
{'imagesrc':'/ my / image.jpg'}
答案 1 :(得分:0)
据我所知,改变图像的唯一浏览器安全方法是为其src属性分配一个新的URL。如果将图像返回到传递某些参数的请求,则可能会阻止客户端兑现图像。出于这些原因,我会单独处理文本数据和图像的传输。 完成状态始终可以作为HTTP状态文本返回,但如果需要从服务器获取更多信息,则始终可以使用JSON或XML返回它,最简单的是JSON。 通过在mouseover事件上预加载图像可以提高响应速度。