ajax内容替换,Javascript-用AJAX调用替换多少内容太多?

尝试进行AJAX开发时遇到一个常见问题.在可能的情况下,我想尝试仅更新现有布局中的数据,而不是布局本身.例如,采用以下div:

Here is some content

我将从服务器获取content-5的更新值,然后仅用该值替换content-5的内容.这对于简单的数据替换非常有意义,在该替换中,值始终将以纯格式显示.

有时内容会更复杂,实际上我不仅要获取原始数据,还可能需要一些逻辑来确定如何显示值,并且取决于内部数据的样式可能有所不同.在那种情况下,我通常会在服务器端生成HTML,并将HTML注入到元素中,而不仅仅是原始数据.

示例:控制器的状态字段返回为“完成”,但是从设计文档中,“完成”应该向用户显示文本“可用”,并且需要以不同于其他状态的方式设置其样式.

使用Javascript进行此操作需要模板层可能已经处理的一些深入的视图知识.最终结果将是相同的(下面的代码段),但是不同之处在于,可能会有一些代码重复和更复杂的Javascript层.

Available

毫无疑问,要求系统也必须处理“新”内容.实现最简单的解决方案是只同时获取所有内容,这样我就不必处理注入新元素而不是仅仅替换现有内容的额外复杂性.

因此,我创建了一个新模板,将内容包装在另一个具有ID的元素中,并在有任何更改的同时批量替换所有内容div.

Some content A
Some content B
Some content C
Some content D
Some content E

在某些时候,我不得不怀疑:生产线在哪里?在某种程度上,感觉好像我最终只是将整个页面替换为AJAX请求.这真的有问题吗?

我意识到这可能是很主观的,但是有什么好的策略来确定您应该使用AJAX替换内容到哪个级别?只要有可能,替换数据似乎是我的首选方法,因为这使AJAX控制器非常简单.从模板替换更大的HTML块似乎是处理更复杂的布局和设计问题的最简单方法,并且感觉它可以更容易维护.我还没有考虑其他选择吗?

我希望将会有一些关于以编程方式操作DOM的讨论,但是我个人真的不喜欢这种方式.该代码最终看起来非常可怕,并且确实开始按我的喜好将太多的布局和设计集成到JS层中.由于我通常使用某种类型的模板库(无论是原始PHP,PHP模板,如Smarty还是Java中的JSP),因此尽可能多地保留可视化设计似乎更有意义.

编辑

根据前几个答案,这似乎是在试图让用户保持在同一页面上,但是却在网站上四处导航,或者在每次更新时以一种彻底的方式更改页面.问题更多的是关于如何确定AJAX调用的布局工作应该发生在哪里以及用AJAX请求更改大代码块是否是可以接受的做法,因为知道替换代码看上去与以前的代码几乎相同之前.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值