如何限制多次加载相同的js

时间:2014-05-02 12:20:47

标签: javascript php cakephp cakephp-2.0

我在谈论CakePHP助手。我想使用CakePHP的帮助程序加载JS文件。

考虑到Helper类的构造将加载所有必需的JS文件。

但是,我需要多次在单个视图中调用Helper。因此,可能会多次调用JS文件。我想只加载一次这些JS文件。

任何人都可以帮我解决这个问题吗?

这将是我的助手脚本

<?php
App::uses('AppHelper', 'View/Helper');

/**
 * @alias Mathjax Class for helper
 * @description This class is to define helper in cakephp.
 */
class MathjaxHelper extends AppHelper {

    /*
     * Constructor of the class.
     */
    function __construct(View $View, $settings = array()) {
        parent::__construct($View, $settings);
        //login to load all necessary JS files.
    }

    function create() {
        //this function will return the helper html
    }

}

1 个答案:

答案 0 :(得分:4)

使用HtmlHelper :: script

如果您使用HtmlHelper::script方法加载'inline' => false,则加载js文件默认情况下会包含一次

布局文件

要使用此方法,请确保在布局文件中回显$scripts_for_layout变量。 E.g:

<html>
    <head>
        ...
    </head>
    <body>
        ...

        <?php echo $scripts_for_layout ?>
    </body> 
</html>

查看文件

在视图,元素或帮助程序中 - 只需确保使用内联参数调用脚本方法:

<?php $this->Html->script('my', array('inline' => false)); ?>

通过这种方式,使用给定的js文件调用脚本方法的频率并不重要 - 它只会在生成的html输出中出现一次。