我使用一些示例编写了自定义模块。我正在使用ContentPartDriver继承的类来呈现结果......
例如:
protected override DriverResult Display(ContentPickerPart part, string displayType, dynamic shapeHelper) {
string IWSUrl = IWSUrlRuleProvider.BuildIWSUrl(part);
var lstTypeItems = _contentpicker.GetItems(IWSUrl);
return ContentShape("Parts_ContentPicker", () => shapeHelper.Parts_ContentPicker(
Items: (lstTypeItems as List<Item>)));
}
模块正在请求Web服务获取一些信息......因为有很多信息需要大约400ms来调用Web服务... 我每页大约有10个相同的模块,渲染时需要400 * 10秒......
如何在orchard cms中异步呈现此模块?(因此将呈现页面,并且每个模块都会有ajax调用之后)
由于
答案 0 :(得分:3)
您可以在页面从零件视图加载到控制器之后创建控制器并进行ajax调用,然后控制器将调用您的服务,或者您可以尝试使用ajaxify小部件,该小部件仅在加载小部件之后页面已加载,但我从未真正尝试过它:) Ajaxify
答案 1 :(得分:2)
您可以使用此模块使您的小部件异步加载:
http://orchardmarket.net/Catalog/Modules/ideliverable-widgets
http://gallery.orchardproject.net/List/Modules/Orchard.Module.IDeliverable.AjaxWidget
我们在1.7.x Orchard网站上使用过它,并且工作顺利。