Razor比Ajax更锐利吗?

时间:2013-06-18 15:55:39

标签: jquery html asp.net ajax razor

我知道jQuery目前是每个人都亲爱的锤子(说实话,我也很迷恋它),但我想知道使用Razor / C#动态生成html是否更优雅或更容易。例如,要更新页面,请考虑此Razor伪代码:

@{
   var divContent = functions.getDivContent("Platypus");

   if(IsPost)
   {
      divContent = functions.getDivContent(request[mammalName]);
   }
   else
   {
      ;//anything?
   }
}

//函数中的getDivContent()函数(未显示)返回动态生成的html

HTML伪代码:

<body>
<form method="POST" action="" >
  <input type="Select" name="mammalName" ... />
</form>
  <div>@divContent</div>
</body>

jQuery伪代码:

$('mammalName').selectionChanged() {
    $('form').submit();
});

在jQuery函数中执行所有这些操作,例如使用json数据和调用.getJson(),可以避免需要完整的页面刷新,但无论如何都必须查询服务器的数据,所以我不喜欢我不知道这是否真的有这样的优势,特别是在我的情况下,刷新页面的部分是页面的大部分。

我的思维/设计有缺陷吗?是否有令人信服的理由在Razor上选择jQuery?

1 个答案:

答案 0 :(得分:1)

是的,在选择使用ajax更改页面或使用整页重新加载来更改页面时,一定要考虑一些事项。

在性能方面,使用ajax总是名列前茅,因为你只需要整个页面一次,然后使用ajax来请求部分内容。

就维护而言,您实际上不需要更改任何服务器端以使用ajax而不是Razor。唯一增加的维护是编写客户端代码,以正确处理页面不会重新加载的事实。

如果您使用了Ajax,则可以优化对ajax的请求,使您的页面仅返回所需内容而不是整个页面,从而进一步提高性能。这需要花费很少的维护成本,因为它增加了另一层复杂性,但是,如果做得好,很容易维护。

明智的用户体验,由于无需重新加载页面,ajax通常会更好。除非您也将其编码到客户端(也不是很困难),否则会丢失后退按钮功能。

如果你将SEO添加到等式中,除非你将你的网站编码为没有ajax工作,否则事情变得更加困难,然后在其上添加ajax功能,爬虫仍然可以在没有ajax的情况下访问整个网站。< / p>