如何在 CakePHP 2.x 中延迟内联 jQuery
How to defer inline jQuery in CakePHP 2.x
由于页面速度优化,我在 布局 中最后加载 jQuery 和其他 javascript。
现在我必须在 视图 中创建一个 jQuery 脚本块(与 php 混合)但是 jQuery 函数显然赢了' 被识别,因为它在 jQuery 加载之前加载。
我试过了:
$this->Html->scriptStart(array('inline' => false));
但它甚至没有在源代码中加载它。
为了调试我试过:
$this->Html->scriptStart(array('inline' => true));
它确实加载了,但正如它所说,是内联的。不适合我的需要。
我如何"defer" 内联 javascript 并在加载所有其他脚本和整个布局后最后加载它?
一个选择是用 javascript 来实现,但我也打算在那里使用 PHP,这就是它出现在视图中的原因。
将您的 jquery 代码包装在 DOM 就绪函数中
document.addEventListener("DOMContentLoaded", function(event) {
});
不要忘记在您的布局中包含:
<? echo $this->fetch('script');?>
在您看来,现在应该可以执行以下操作:
<? $this->Html->scriptStart(array('inline' => false)) ?>
//Js goes here
<? $this->Html->scriptEnd() ?>
由于页面速度优化,我在 布局 中最后加载 jQuery 和其他 javascript。
现在我必须在 视图 中创建一个 jQuery 脚本块(与 php 混合)但是 jQuery 函数显然赢了' 被识别,因为它在 jQuery 加载之前加载。
我试过了:
$this->Html->scriptStart(array('inline' => false));
但它甚至没有在源代码中加载它。
为了调试我试过:
$this->Html->scriptStart(array('inline' => true));
它确实加载了,但正如它所说,是内联的。不适合我的需要。
我如何"defer" 内联 javascript 并在加载所有其他脚本和整个布局后最后加载它?
一个选择是用 javascript 来实现,但我也打算在那里使用 PHP,这就是它出现在视图中的原因。
将您的 jquery 代码包装在 DOM 就绪函数中
document.addEventListener("DOMContentLoaded", function(event) {
});
不要忘记在您的布局中包含:
<? echo $this->fetch('script');?>
在您看来,现在应该可以执行以下操作:
<? $this->Html->scriptStart(array('inline' => false)) ?>
//Js goes here
<? $this->Html->scriptEnd() ?>