![]() |
1
6
在大多数情况下,我会推荐您最初所说的,使用Javascript加载每个小部件,因为这不是一个选项,我认为您需要做一些稍微不同的事情。 除了使用试图让一个前台控制器完成所有需要的小部件和建立它们的方法之外,你还需要考虑的另一个选择是在Mako更强有力地使用模板。 实际上,您可以将小的块定义为makodef,它当然具有完全的Python功能。为了避免域逻辑污染Mako模板,请确保将所有这些都保留在模型中,并根据需要调用Mako def中的模型实例,以构建页面的组件。 这种方法的一个巨大优势是,由于Mako def支持缓存参数,您实际上可以让页面的组件决定如何缓存它们自己。也许侧边栏应该被缓存5分钟,但是顶部的栏每次点击都会改变。此外,由于组件正在触发db命中,因此当组件缓存自身时,您将保存db命中。
至于对您现有想法的一些调整,请确保不要为“小部件”实际使用挂架控制器,因为它们可以根据需要提供更多支持WSGI的功能,而构建小部件页面则不需要这些功能。 我会考虑让所有的小部件都这样工作:
然后让主Mako模板迭代小部件实例,并调用它们来渲染它们。 |
![]() |
2
0
ToscaWidgets 封装您的小部件,以及为每个用户启用的小部件的存储列表(如您所建议的,在数据库或其他服务中)。将已启用的ToscaWidgets列表传递给视图,这些widgets将呈现自己(包括在widget需要这些资源时向页面动态添加CSS/JavaScript引用)。 |
![]() |
KollegeBo · 触发更新的POST或GET 3 年前 |
![]() |
mariolototo · 无法获取“/”express以外的路线 3 年前 |
![]() |
nnmmss · 根据查询字符串值激活li 3 年前 |
![]() |
Ezaldeen Ezaldeen · pdo包装器最后一个id返回0 3 年前 |
![]() |
Bruno Vavretchek · JSON模型建议 7 年前 |
![]() |
Pasha · 如何在@RequestBody中传递2个对象? 7 年前 |