异步加载果园自定义小组件

本文关键字:组件 自定义 果园 加载 异步 | 更新日期: 2023-09-27 18:31:48

我用一些例子编写了自定义模块。我正在使用 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 服务以获取一些信息...由于有很多信息,仅调用 Web 服务大约需要 400 毫秒......我每页大约有 10 个相同的模块,渲染需要 400*10 秒......

如何在果园 cms 中异步渲染此模块?(所以页面将被渲染,之后每个模块都会有ajax调用)

谢谢

异步加载果园自定义小组件

您可以创建一个控制器并在页面从部件视图加载到控制器后进行 ajax 调用,控制器将调用您的服务,或者您可以尝试使用 ajaxify 小部件,它只会在页面加载后加载您的小部件,但我从未真正尝试过:)阿贾克斯化

您可以使用

此模块来使您的小部件异步加载:

http://orchardmarket.net/Catalog/Modules/ideliverable-widgets

http://gallery.orchardproject.net/List/Modules/Orchard.Module.IDeliverable.AjaxWidget

我们已经在 1.7.x Orchard 站点中使用它并且运行顺利。