Javascript 手动加载扩展以及在renderPartial中使用Ajax的最佳实践

Javascript 手动加载扩展以及在renderPartial中使用Ajax的最佳实践,javascript,ajax,yii,Javascript,Ajax,Yii,在我的yii应用程序中,我使用选项卡并通过renderPartial()按照ajax加载内容。为了不多次加载所有脚本,我已将processOutput设置为false。所以我想在索引页面手动加载所有需要的脚本一次 我还在页面上使用了一些扩展。所以我也需要手动加载他们的js/css。问题是: 我怎样才能知道页面上将使用哪些扩展并加载它们的js/css文件 另一个问题是:例如,我将使用引导扩展。扩展名具有assets文件夹,其中包含许多javascript文件。如何导入所有文件 我还想了解使用A

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

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

  • 我怎样才能知道页面上将使用哪些扩展并加载它们的js/css文件
  • 另一个问题是:例如,我将使用引导扩展。扩展名具有assets文件夹,其中包含许多javascript文件。如何导入所有文件
我还想了解使用Ajax加载相同内容(
GridView
)的最佳实践,在使用Fitlers/Delete按钮时不会收到重复的Ajax请求

我怎样才能知道页面上将使用哪些扩展并加载它们的js/css文件

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

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

您可以使用来为自己执行此任务

另一个问题是:例如,我将使用引导扩展。这个 扩展名具有assets文件夹,其中包含许多javascript文件。怎么 我可以导入所有文件吗

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

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

我还想听听关于加载相同内容的最佳实践 使用Ajax的内容(GridView),而不会获得重复的Ajax请求 使用Fitlers/Delete按钮时


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

谢谢您的评论,但不幸的是,它对我没有多大帮助。我的问题要具体得多。在yii中,所有扩展都注册在
config/main.php
中。但是,我使用
renderPartial
渲染
TbGridView
,将
processOutput
参数设置为
false
。这意味着不会加载所有脚本(以防止重复Ajax请求)。这个问题涉及到我以前的问题: