【问题标题】:ASP.NET MVC and Ajax slow?ASP.NET MVC 和 Ajax 慢?
【发布时间】:2011-03-28 16:39:19
【问题描述】:

我刚刚开始尝试 MVC 2 和 Ajax,我想知道我是否做错了什么,因为我的印象是 Ajax 会非常快地在网页中做出更改。我的例子是 Ajax actionlink:

<div>
  <%: Ajax.ActionLink("Dita", "AjaxView", new AjaxOptions { UpdateTargetId = "myDiv" })%>
</div>
<div id="myDiv">
    Change this text</div>

还有Action方法:

public ActionResult AjaxView(string id)
{
     return Content("Text changed!"); ;

}

这是一个相当短的简单文本字符串,仍然需要大约 1-2 秒才能显示文本。也许 ajax 不应该像我想的那样做,但我想我可以用它来即时预览文本和图像,有点像翻转功能(顺便说一下,我想知道是否可以将 actionlink 设置为调用鼠标悬停而不是单击时的操作方法?)

这么慢是正常的还是我错过了什么?

【问题讨论】:

  • 本地应该非常快。您是通过 Visual Studio 还是在 IIS 中运行网站?第一个页面加载需要多长时间?
  • 你是用FF还是Chrome进行测试?
  • 我正在 Visual Studio localhost 中运行测试。页面加载大约需要 3-5 秒。然后动作链接大约需要 1-2 秒。它虽然有点不同。有时它会更快。但后来又变慢了……我使用 Chrome 作为我的测试浏览器。
  • 你能检查一下在 IE 或 Opera 中是不是一样慢,还是更快?
  • 仅供测试禁用防火墙和病毒软件。

标签: asp.net-mvc ajax actionlink


【解决方案1】:

使用localhost 时,FF 和 Chrome 可能存在 IPv6 DNS 解析问题。此处描述的修复:

Firefox and Chrome slow on localhost; known fix doesn't work on Windows 7

这里

https://superuser.com/questions/174715/is-there-a-way-to-disable-ipv6-in-googles-chrome

我会先在 IE 和 Opera 中尝试,看看它是否运行得更快。

注意:如果这确实是问题所在,这与 AJAX 无关。

【讨论】:

  • 谢谢!这似乎是答案。我尝试使用 IE,它运行完美,即时刷新,无论我加载一个简单的文本字符串还是部分视图(顺便说一句,在学习 Ajax 时,似乎加载一个没有正文标记的页面等似乎是加载的建议一段 html,但我还没有读过任何关于为此使用局部视图的内容,这不是很理想吗?它没有任何正文等开始......无论如何,再次感谢您解决这个问题!
【解决方案2】:

我认为您误解了一点点。AJAX 并没有什么可以使您的 Web 应用程序更快。 AJAX 所做的是只加载您需要的信息,而不是重新加载整个页面。这样您就可以对正在查看的页面进行细微的更改,而无需刷新整个页面。

关键是 - 当您调用 AjaxView 时,它仍然需要回调服务器,无论您做什么都需要时间。此动作缓慢的原因可能取决于不同的因素; - 您的服务器可能正忙于做其他事情,因此会消耗资源 - 你刚刚构建了程序集,第一次调用变慢了

【讨论】:

  • 对,但是围绕 ajax 的所有炒作,几乎“口号”似乎是“不再等待缓慢回发到服务器”,即使我知道它仍然需要回调一个小对象服务器。但我认为关键是它是如此之快以至于几乎不会被注意到。因此,如果不能指望 ajax 做到这一点,是否有另一种方法可以即时预览文本? jquery 会提供更好的方法还是相同(文本必须来自服务器无论如何......)?请参阅microsoft.com/sv/se/default.aspx 作为我的意思的效果示例(左侧菜单)
  • 您可以在最初加载页面时预加载信息,以便信息已经在发送给查看器的 HTML 中。这样您可以轻松地显示/隐藏/操作 HTML 使用正如你提到的,一个像 jQuery 这样的 Javascript 库。请记住,Microsoft Ajax 和 Jquery 都依赖于 Javascript。它们只是使每个人都可以更轻松地编写干净可靠的 Javascript 的库。如果我是你,我会看看 jQuery。它改变了我创建 Web 应用程序的方式,而且上手真的不难!
  • 是的,问题似乎是如上所述的浏览器支持,然后它真的很快,所以即使内容在服务器上似乎也能正常工作。无论如何,谢谢,我已经开始研究 jquery,但它似乎真的很吸引人!
猜你喜欢
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 1970-01-01
相关资源
最近更新 更多