我想要的效果是,整个页面先呈现出来,自定义的组件随后异步加载呈现出来。比如做电商网站,旁边有些小控件,如“猜你喜欢”,这个需要查询数据库和计算,比较耗时,如何能不阻塞页面的整体加载速度,自己在一边慢慢加载都行。
我用了@await Component.InvokeAsync("Menu"),感觉还是同步的,等这个加载完了才会执行后面的代码。
ajax 是唯一的出路
额,那不就和MVC4一样的了,以前项目MVC4的,我就是用ajax实现分部视图异步加载,但是比较麻烦。我以为core里用async就可以很简单的实现这个效果。
那我想问下ViewComponent不能直接用ajax请求到吧,那怎么实现好呢?
@破天长云: 可以 ajax 请求到,但需要通过一个 Action 返回
public IActionResult PostList([FromBody]AggSiteModel model)
{
return ViewComponent(typeof(Components.AggSite.PostList), new { model });
}
都已经NET CORE了,你居然还在用自定义组件,现在不是应该前后端分离了吗?
前端交给Angular /Vue /React 去处理,你想多异步就有多异步。
。。。大叔说的是也