0

我将 web2py 从 2.3.2 升级到 2.14.6。然后进行所有必需的更改,例如更新/替换web2py.js, jquery.js, web2py_ajax.html, appadmin.py, appadmin.html. 然后进行了一些 CSS 更改以匹配旧 UI。后端代码没有变化。

现在,当我SQLFORM.grid()在 web2py 2.14.6 上访问包含 web2py grid ( ) 的应用程序页面时,需要34.775 ,而在 2.3.2 版本的相同页面上,相同数量的记录需要0.686 。Grid 有大约 4600 条记录。没有网格的页面在两个版本上加载大约需要相同的时间。

我做了时间分析,发现这gluon/html.py需要大部分时间。

时间分析结果

2.3.2:https ://paste.ubuntu.com/23602259/

2.14.6:https ://paste.ubuntu.com/23602261/

我还在网格定义前后添加了打印语句,在 2.14.6 上花了 18 秒,在 2.3.2 上花了 10毫秒

SQLFORM.grid()定义类似于以下:

grid = SQLFORM.grid(query,
        create=True,
        csv=False, deletable=False, searchable=search_query,
        showbuttontext=False, links=links, links_placement='left',
        maxtextlengths=textlengths, upload=URL('download'),
        fields=[db.notice.UIN, db.notice.classname, db.notice.title,
                db.notice.type,
                db.notice.description,
                db.notice.due_date, db.notice.status,
                db.notice.risk, db.notice.consequence,
                db.notice.document,
                db.notice.other])

上面网格中的示例查询-

((((user_notice.notice = notice.id) AND (user_notice.auth_user = 19)) AND
  (notice.status IN ('Closed','Open','New'))) AND
 (notice.due_date IS NOT NULL))

我在本地计算机上对此进行了测试——Ubuntu 14.04、Python 2.7.6 和 mysql db。

为什么新版本需要更多时间来加载网格?升级后是否需要对应用程序代码进行任何更改?

请帮我解决这个问题。

谢谢

4

0 回答 0