Yii框架在脚本标记中添加延迟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii框架在脚本标记中添加延迟相关的知识,希望对你有一定的参考价值。

如何在脚本标记中添加延迟?我用这个Yii::app()->clientScript->registerScriptFile(Yii::app()->getBaseUrl().'/js/jquery.js');

我试着换到Yii::app()->clientScript->registerScriptFile(Yii::app()->getBaseUrl().'/js/jquery.js', CClientScript::POS_HEAD,array('defer'=>'defer'));

或者Yii::app()->clientScript->registerScriptFile(Yii::app()->getBaseUrl().'/js/jquery.js', CClientScript::POS_HEAD,array('id'=>'defer'));

不行。我不知道该怎么做。请帮忙。

答案

我发现了这种方式:

  1. 检查CClientScript.php中的函数registerScriptFile(),如果param htmlOptions不存在,请从源代码中替换https://github.com/yiisoft/yii中的2个文件 CClientScript.php CHtml.php
  2. 在文件CHtml.php中注释'defer'=>1函数的renderAttributes()
  3. 添加以下行:Yii :: app() - > clientScript-> registerScriptFile(Yii :: app() - > get BaseUrl()。'/ js / jquer y.js',CClientScript :: POS_HEAD,array('defer') =>''));
另一答案

您可以提供诸如此类的选项

$this->registerJsFile('https://apis.google.com/js/platform.js?onload=renderButton',['position' => View::POS_END, 'async'=>true, 'defer'=>true]);

添加内部js

  $this->registerJsFile(Yii::$app->view->theme->baseUrl .'/your_js_path',['position' => View::POS_END, 'async'=>true, 'defer'=>true]);

以上是关于Yii框架在脚本标记中添加延迟的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 框架跑脚本时内存泄漏问题分析

如何在没有模型的Yii框架的下拉列表中添加所有选项的链接?

yii2框架添加扩展类

yii框架中,如何利用下拉菜单进行筛选

如何在 Yii2 表单字段中添加自定义类到标签?

从数据库yii中检索元描述