javascript - 手动加载扩展以及使用 Ajax 进行 renderPartial 的最佳实践

标签 javascript ajax yii

在我的 yii 应用程序中,我使用选项卡并使用 renderPartial() 加载每个 ajax 的内容。为了不多次加载所有脚本,我将 processOutput 设置为 false。所以我想在索引页面手动加载所有需要的脚本。

我还在页面上使用了一些扩展。所以我还需要手动加载他们的js/css。问题是:

  • 如何确定页面上将使用哪些扩展并加载其 js/css 文件?
  • 另一个问题是:比如我会使用bootstrap扩展。该扩展有assets文件夹,其中包含许多javascript文件。如何导入所有文件?

我还想了解使用 Ajax 加载相同内容 (GridView) 的最佳实践,而不会在使用 Fitlers/Delete 按钮时收到重复的 ajax 请求。

最佳答案

How can I figure out which extensions will be used on the page and load their js/css files?

您必须在使用文件之前加载它们。这必须手动完成。 在访问任何函数之前,请使用 require('script.js') 之类的函数。

您的 require() 方法应该检查脚本是否已加载,如果没有则执行 ajax 请求。

您可以使用RequireJS为您执行此任务。

Another problem is: for example, I will use bootstrap extension. The extension has assets folder, which contains many javascript files. How can I import all the files?

您必须单独导入每个文件,这意味着您的应用程序需要知道所有文件。

一个好主意是创建一个配置文件:content.json。 您的函数首先获取包含所有引导资源的配置文件。然后,它获取所有这些资源。

I would also like to hear about best practices for loading the same content (GridView) with Ajax without getting duplicate ajax requests when using Fitlers/Delete buttons.

围绕 ajax() 编写一个包装函数来缓存结果。

关于javascript - 手动加载扩展以及使用 Ajax 进行 renderPartial 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119930/

相关文章:

javascript - 单击文档时的 Backbone JS 事件

javascript - 我怎样才能从html中提取特定元素

mysql - 匹配 IN 子句中的所有值

yii - 通过 AJAX 使用 CGridView 时如何避免渲染整个页面

javascript - 如何使用货币掩码自动格式化输入数字( ionic )

javascript - dragstop 我做错了什么?

php - 计算动态添加的表单元素的总和

javascript - AJAX 聊天的正确刷新率是多少?

php - AJAX 添加到购物车按钮不适用于自定义查询循环产品 woocommerce

javascript - 在 Yii 中禁用 javascript