服务器端和javascript生成的HTML-如何结合?

| 我通常是一个有创意的gal,但是现在我找不到任何好的解决方案。有HTML(例如表单行或表格行)都是基于javascript和服务器端生成的,在两种情况下完全相同。当您打开页面时,它是在服务器端生成的(对于Google来说,它必须在服务器端保留),而它是由AJAX生成的,用于显示实时更新或将表格扩展为新的空行。 问题是:HTML生成例程现在存在两次,您知道DRY(不要重复自己),是吗?每次更改时,我都必须编辑2个位置,但这与我对优质软件的想法不符。 将基于javascript和服务器端HTML生成相结合的最佳策略是什么? PS:服务器端语言始终是不同的(PHP,RoR,C ++)。 PPS:请不要给我关于Node.JS的答案,我可以自己弄清楚;-)     
已邀请:
这是Ruby on Rails解决方案: 每个模型都有其自己的局部。例如,如果您有模型Post和Comment,则将具有_post.html.erb和_comment.html.erb 当您调用\“ render @post \”或\“ render @comment \”时,RoR将查看对象的类型并决定要使用哪个部分。 这意味着您可以在许多不同的视图中以相同的方式重现对象。 即在正常响应或AJAX响应中,您总是只调用\“ render @post \” 编辑: 如果您想在不连接服务器的情况下使用JS渲染内容(例如,从其他服务器或其他服务器获取数据),则可以使用我提到的方法制作JS模板,将其发送给客户端,然后让客户端使用该模板渲染新对象。 对于JS模板插件,请参见以下内容:http://api.jquery.com/category/plugins/templates/     
使服务器处理程序生成HTML。当您打开页面时,从服务器调用该代码,并且当您需要进行实时更新时,向该处理程序发出AJAX请求,因此您不必在客户端中重复该代码。     
  将基于javascript和服务器端HTML生成相结合的最佳策略是什么? 如果您想保持干燥状态,请勿尝试将它们组合在一起。坚持只在服务器上(显然是SEO的首选选项)或仅在客户端上生成HTML。     
制作一个在服务器上生成HTML并返回HTML的页面,例如:
http://example.com/serverstuff/generaterows?x=0&y=foo
如果在服务器上需要它,请访问该链接,或调用访问该链接的子例程。如果您在客户端上需要它,请使用AJAX访问该链接,最终将调用相同的服务器代码。 还是我错过了什么? (我不确定您所说的“由AJAX生成”是什么意思)。 如果您使用两种不同的语言,则看不到其他解决方案。您可以使用PHP / RoR / JavaScript编译器(因此可以使用一种语言编写源代码,并使用另一种语言自动生成源代码),也可以使用一种生成输出来供其他人读取。     
加载没有任何行/数据的页面。 然后运行您的Ajax例程以在页面加载时首次获取数据 然后在需要时/由您的代码决定何时获取更新/新记录。     

要回复问题请先登录注册