- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从 Javascript 文件到 MVC5 Controller 的简单 ajax 调用。此调用大约需要 2 秒。 javascript 和 Controller 中的任务都非常简单。我无法显示完整的代码,但我对整个调用堆栈进行了性能测量。
如果所有操作都在 10 毫秒内完成,那么延迟从何而来?您可以在下图中看到,其中 TTFB 为 2.12 秒,我的 Controller 显然早于 2.12 秒(根据我的性能测试为 2 毫秒)完成此操作。
我是否错过了诸如网络问题之类的问题 - 很怀疑,因为这一切都是在我的开发 PC 上完成的。我还对部署到独立 IIS 服务器的完全编译的应用程序进行了相同的尝试(UAT 但仍然......),结果是相同的。
我唯一想到的是 asp.net 在 Controller 方法完成之后、实际将 JSON 数据返回到浏览器之前做了一些事情?
Javascript执行:
1: 1.2000 milliseconds (get values)
2: 2.4000 milliseconds (validation)
3: 2.9000 milliseconds (just before Ajax call)
4: 2172.3 milliseconds (inside Ajax Success)
5: 2174.3 milliseconds (last step in Ajax Success)
6: 0, 0, 1 (see below, these are controller values)
Controller 执行:
1: 0 milliseconds (Controller init, constructor completed)
2: 0 milliseconds (Action start)
3: 1 milliseconds (Action end (just before return)
Javascript代码:
// previous steps omitted, you can see the times for steps 1-3.
$.ajax({
type: "POST",
url: $("#appPath").val() + "/MyController/TrivialAction",
data: req,
cache: false,
global: false,
success: function (response) {
console.log("4: " + (performance.now() - t0) + " milliseconds.")
// some code here...
console.log("5: " + (performance.now() - t0) + " milliseconds.")
console.log(response.StepsInCtrlr);
},
error: function (errorxhr, status, error) {
BootBoxDiplayHtml(errorxhr.responseText);
}
});
这是 Controller 返回方法(根据 Peter B 的回答)
return Json(new
{
IsError = resp.IsError,
ErrorMessage = string.Join("<br>", resp.ErrorMessages),
Amount = resp.Amount.ToString("n2")
}, JsonRequestBehavior.AllowGet);
(不是上面的确切请求,而是类似的请求)
最佳答案
如果您收到一致的冷和热长请求,但缺少时间,那么它可能指向您正在使用的 IoC 项目。
我发现其中一些需要 0.5 秒才能解决请求,这意味着您在黑洞中浪费了时间。
我经历过 Ninject 在大型应用程序中吞噬近 0.4 秒的时间,这太多了。我将该项目移植到 SimpleInjector,这几乎是瞬时的。
虽然 SimpleInjector 让您遵守更严格的规则集,并且不提供某些依赖项的自动配置,但它确实会奖励您以闪电般的快速解决时间加倍努力。现在,当我放入 IoC 时,它已成为我事实上的标准。
关于javascript - Ajax 调用 Controller 需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54650132/
这个问题在这里已经有了答案: Isn't an Int64 equal to a long in C#? (2 个答案) 关闭 9 年前。 它不应该是一个整数类型吗? 这样,一些使用 int 的函数
当我遇到一些我想知道的事情时,我正忙着解析一个二进制文件。 Stream.Position属性的类型为Int64或long。为什么是这样?因为流中的位置不能为负,所以使用 UInt64 不是更有意义吗
所以第一部分是我从用户那里获得输入,在本例中,输入是“1”作为从另一个函数接收的字符值。 printf ("\nPlease enter 1, 2, 3 or q: "); option =
我正在尝试使用以下代码从 REST 服务返回 JSON: $categories = $categoriesController->listAll(); if($categories){ hea
我阅读了文档,它说 long 是 %li,但打印输出返回为 -2147024891。是什么赋予了? 最佳答案 您甚至没有提供要打印的号码,但我猜您已经无意中发现了签名打印和未签名打印之间的区别。 使用
我正在创建自定义购物车,我正在构建一个查询,该查询从检索我刚刚保存到购物车表中的 session_id 开始。我知道这个值被保存了,我在 mysql 命令行运行这个查询,它返回我需要的但我没有将值放入
我有一个包含 textView 的 scrollView。如果文本很长并且不适合屏幕,我想增加 textView 高度(我想我可以通过添加 NSLayoutConstraint outlet 并修改它
我有一个基本的数据库处理程序类,其中有一个使用 PDO::FETCH_ASSOC 参数返回结果集的公共(public)方法: public function resultSet() { $th
在后台线程中,我调用 PublishSubject.onNext(); 并在主线程中通过 subscribe(PublishSubject.filter(message -> message.getI
我想知道为什么 Amazon Web Services 控制台登录页面有这么长的 url?为什么不只发布数据而不显示其中包含大量数据的冗长 url。以这种方式实现有什么充分的理由吗? 最佳答案 我认为
这个问题在这里已经有了答案: Can I mix MySQL APIs in PHP? (4 个答案) 关闭 6 年前。 希望我犯了一个快速而明显的错误,我浏览了 previous question
我得到了答案:如果我禁用了cookie,那么使用URL重定向我可以传递JSESSIONID,但我的URL已经很长,因为我使用它有约束的GET方法。那怎么办我应该使用我的 session 吗?我希望我的
目前,当我使用 DOMDocument 对象并调用 saveHTML() 时,它会自动添加一些我不需要的 html 标签。我尝试了此处建议的解决方案 ( https://stackoverflow.c
我是一名优秀的程序员,十分优秀!