【问题标题】:Load orchard custom widget asynchronously异步加载果园自定义小部件
【发布时间】:2014-11-25 12:51:22
【问题描述】:

我已经使用一些示例编写了自定义模块。我正在使用 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 秒...

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

谢谢

【问题讨论】:

    标签: c# asp.net ajax asp.net-mvc orchardcms


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多