向页面添加注释时,我可以选择使用location.reload(true);
或执行大量JQuery来动态添加DIV到页面。我已经有代码在加载时解释页面本身的注释,因此必须在JQuery中复制它不仅会增加代码重复和混淆,而且还意味着当我想要更改注释的注释方式时我必须更改它事物的PHP方面和JQuery方面。是值得的还是我应该刷新页面?
答案 0 :(得分:3)
这是一个“讨论”的问题,所以虽然我会大声思考你,但我没有宣布解决这个问题的“更好”方法。
客户端/服务器耦合。 你提到你担心客户端/服务器之间的耦合;对于jQuery解决方案,如果您想要更改有关注释的内容,则必须更改客户端和服务器逻辑。这在可维护性方面是重要的。如果您预见到处理评论的方式会有重大的重新设计,您希望将这些问题分开,并重新加载页面。
UI流程注意事项。 重新加载页面会破坏UI的流程吗?如果您正在托管有状态Web应用程序,那么这是一个重要的考虑因素。如果您要托管标准的博客/ CMS类型的应用程序,重新加载页面可能不是什么大问题。
所涉及的努力量。 编写这个jQuery例程需要多长时间?一小时?一天?看起来简单地重新加载页面是1.0版本的快速,简单的解决方案;你总能在以后做出改进。还要考虑决策的后果,以及未来需要做出多少努力。
然而,此讨论的有效性仅与您的设计一样有效。退一步看看你的设计往往是有益的。为什么这个问题甚至存在?在它发生之前,您是否可以进行设计更改以解决此问题?嗯...
-tjw
答案 1 :(得分:2)
我的方法是将注释提交给服务器,并使用您用来显示注释的包含HTML获取XML响应。使用XML响应,您可以使用jQuery将新注释附加到线程。
可以使用PHP生成HTML的那部分,就像重新加载页面一样。
这样,您只需修改PHP代码。
答案 2 :(得分:0)
这一切都取决于差异是否足够明显,花费给用户,因为不在js中执行,将高于增益你将拥有它。
也就是说,如果您为自己的便利而关心用户体验;)
最后,只有你能回答这个问题,因为你需要值得的人,就是你。
您的用户是否愿意使用javascript并在没有页面加载的情况下更新页面:很可能是。
答案 3 :(得分:0)
我想说这取决于你用jquery / javascript做什么,或者你重新加载更改。选择一个路径,并构建一切可以使用它。 我个人更喜欢使用jquery,所以我不仅要用jquery添加帖子,我还会用jquery加载所有帖子。
答案 4 :(得分:0)
根据您的需要,这里有几种不同的选择。一种选择是做一个完整的帖子,有时,它是正确的。在几乎所有情况下,它应该是javascript不可用的情况下的默认设置(例如,屏幕阅读器)。为此,您可以添加(渐进增强)能够执行返回html的AJAX请求,即回发到生成页面的一部分并简单地替换它的方法。如果您将页面设计为在最初生成时合并此部分视图,则甚至不必复制代码 - 您只需在通过AJAX调用时以不同的方式使用它。或者,您可以执行AJAX请求,返回数据或完全在客户端上操作客户端上的数据以更新视图,并仅将任何更新的数据推送回服务器。您选择的完全取决于应用程序和您的偏好。根据您的帖子,我建议您查看MVC框架,它允许您生成部分视图,因为它似乎可以解决您最关注的问题。它使页面上的javascript数量保持较小,并专注于简单地发出请求和更新页面的位,同时将格式和数据解析保留在服务器上 - 所有这些都可以通过AJAX进行访问。
答案 5 :(得分:0)
似乎有两个问题:
问题1 :我认为这不是一个特别的编程问题:Ajax是否必要取决于您的应用和用户(或客户或经理或产品经理)的要求 - 可能不是您)。刷新是否重要?嗯,如果没有它可以更平滑 - 你甚至可以很好地制作动画。好消息:你有一个“工作版本”,现在你知道做Ajax会有多少工作 - 你可以对那些支付$的人做出更明智的估计。
问题2 :我的规则是不两次写相同的代码 - 即使您在PHP中编写一次,在Javascript中编写一次。这是你感到沮丧的。这是我的理由,当我正在经历这个:
您有自己的评论,需要将其转换为HTML。您可以在以下两个位置之一执行此操作:服务器或客户端(Javascript) - 而不是两者。因此...
如果您在服务器上实现呈现注释,则应该使用Ajax体系结构。因此,Ajax响应不应返回XML或JSON,而应返回可简单插入DOM的HTML段。您可以在初始页面显示和Ajax共振之间在后端共享相同的呈现代码。
如果要在Javascript中实现呈现,请在页面首次呈现时使用与响应Ajax请求时相同的呈现代码。这对某些人来说有点违反直觉 - 但实际上是避免重复的秘诀。为评论选择标准的“结构化格式” - XML或JSON。编写一个知道如何将其呈现给页面的函数。然后,您可以使用相同的代码来处理Ajax业务。
您选择哪条路径取决于很多因素。如果您有一个公共网站并关心搜索引擎收集的评论,那么技术1将会更容易一些。如果你不是那么关心它,并且预期会有很多动态的Javascript行为,那么后一个选项会更好地为你服务。