我朋友的一道面试题,请大神进来帮忙指点一下。。。

qq_29448025 2017-03-28 09:39:46
...全文
213 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_29448025 2017-03-30
  • 打赏
  • 举报
回复
引用 5 楼 superwfei 的回复:
用以进行图片显示的控件作为显示域,每次异步请求是清空显示域并放一个正在加载的图片,加载成功后再次清空显示域,放入请求后的图片信息

$('#xxx').click(function(){
  $('#显示域').html('<img src="加载图片" />')
  $.ajax({
    url:'...',
    success:function(data){
      $('#显示域').html('<img src="'+data处理后的图片地址+'" />')
    }
})
})
这些代码大致我表面上大致都懂,有点不明白的是,上面的"加载图片"和"data处理后的图片地址"分别表示什么,是同一张图片吗? “每次异步请求是清空显示域并放一个正在加载的图片,加载成功后再次清空显示域,放入请求后的图片信息”? 为什么要做两次同样的事呢? 能帮忙再解答一下吗?
文盲老顾 2017-03-30
  • 打赏
  • 举报
回复
首先根据题目描述的情况 点击第一次,出现了一个图片,点击第二次,又出现了一个图片,两张图片并存了 那么这种情况推测是有显示域存在的,并且图片加载后通过 appendTo之类的方法显示在页面上的,而不是直接具有图片标签然后修改标签属性以显示图片 那么,再次考虑用户体验的话,点击后无法得知是否正在进行请求,所以放一个正在加载的图片,比如说loading啦,转圈的gif啦,会让用户多一点耐心进行等待,而不是连续多次进行点击造成多次请求后无法正确保留最后一次事件请求的内容(因为根据服务器响应、传输以及网络堵塞等原因,多次请求的结果返回顺序不一定和请求顺序一致) 最后,jq的ajax请求成功后会将结果作为参数传递到方法内,我给的例子中data就是返回的结果,具体是json还是纯图片地址还是其他什么格式题目未给出,所以这里也就模糊描述了
文盲老顾 2017-03-29
  • 打赏
  • 举报
回复
用以进行图片显示的控件作为显示域,每次异步请求是清空显示域并放一个正在加载的图片,加载成功后再次清空显示域,放入请求后的图片信息

$('#xxx').click(function(){
  $('#显示域').html('<img src="加载图片" />')
  $.ajax({
    url:'...',
    success:function(data){
      $('#显示域').html('<img src="'+data处理后的图片地址+'" />')
    }
})
})
似梦飞花 2017-03-29
  • 打赏
  • 举报
回复
每次点击只修改img的src
天际的海浪 2017-03-28
  • 打赏
  • 举报
回复
如果是用jquery 在把图片显示在页面上时, 不要用 $("#父元素的id").append("<img>") 应该用 $("#父元素的id").html("<img>") 或者在增加新图片前先用 remove()将上次增加的图片移除掉。
qq_29448025 2017-03-28
  • 打赏
  • 举报
回复
引用 1 楼 jiangbai333 的回复:
把之前那张删了
怎么删除呀。
jiangbai333 2017-03-28
  • 打赏
  • 举报
回复
把之前那张删了

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧