【问题标题】:Agile toolkit - how atk4_form.js is loaded?敏捷工具包 - atk4_form.js 是如何加载的?
【发布时间】:2017-10-01 05:10:35
【问题描述】:

我正在使用敏捷工具包 4.2 版。 我正在使用一个创建模式(弹出)的javascript函数,并通过ajax调用插入内容。 内容是通过jquery的“.html()”函数插入的,但是在大数据的情况下,这个函数很慢。

我用普通的 javascript 函数“.innerHTML”替换了这个函数。

但是现在,atk4_form.js 不再加载,我不知道为什么。 jquery的“html()”函数有什么钩子吗?使用“html”时会调用所有内容事件,但使用“innerHTML”时不会调用任何内容事件。

我知道“Form_Basic”类在“render”函数中加载了 atk4_form.js。但是必须有一些用于渲染的钩子也指向 jquery 的“html”或“append”函数。

知道当我使用 javascript 函数“innerHTML”时如何加载 atk4 的基本函数吗?

【问题讨论】:

    标签: javascript jquery modal-dialog atk4 agiletoolkit


    【解决方案1】:

    您需要在服务器响应中查找标记并在触发窗口打开事件的元素的上下文中执行它。如果你没有做任何花哨的事情,那么只需 eval() 块。

    加载器是很久以前写的,见文件start-atk4.js

    javascript 包裹在 $.atk4(function(){ .. }); 中,类似于 $(function() { });但略有延长。

    执行很可能是通过ui.atk4_loader.js 完成的,它是设计用于安全加载页面区域的 jQuery UI 小部件。

    要回答您的问题,您应该在此处复制并修改此文件:

    https://github.com/atk4/atk4/blob/develop/public/atk4/js/ui.atk4_loader.js#L201

    【讨论】:

    • 谢谢,我的数据长度是 800 000,jqyery 的“html”加载时间需要 6 秒,而 javascript 的“innerHTML”需要 0.41 秒。谁愿意等待超过 7 秒才能出现弹出窗口?
    • 那么你的页面设计错了。把这么大的数据表展示给没有分页器的客户端是没有用的。 InnerHTML 肯定更快,但据我所知,它不会运行脚本并做 jQuery html() 所做的所有花哨的事情。
    • 另外你应该看看 ATK 4.3 版和新的github.com/atk4/uigithub.com/atk4/data :)
    • @Pascut,也许使用最新的 jQuery 会优化 html() 方法,我不确定为什么需要这么长时间。无论如何-如果您设法使脚本正常工作,请分享:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多