Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何限制多次加载同一个js_Javascript_Php_Cakephp_Cakephp 2.0 - Fatal编程技术网

Javascript 如何限制多次加载同一个js

Javascript 如何限制多次加载同一个js,javascript,php,cakephp,cakephp-2.0,Javascript,Php,Cakephp,Cakephp 2.0,我说的是CakePHP助手。我想使用CakePHP的助手加载JS文件 考虑到Helper类的构造将加载所有必要的JS文件 但是,我需要在单个视图中多次调用该助手。因此,JS文件可能会被多次调用。我只想加载那些JS文件一次 有人能帮我报道一下吗 这将是我的助手脚本 <?php App::uses('AppHelper', 'View/Helper'); /** * @alias Mathjax Class for helper * @description This class is

我说的是CakePHP助手。我想使用CakePHP的助手加载JS文件

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

但是,我需要在单个视图中多次调用该助手。因此,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
    }

}
使用HtmlHelper::script
如果使用带有
'inline'=>false的方法来加载js文件,默认情况下,这些文件将被包含一次

布局文件 要使用此方法,请确保在布局文件中回显
$scripts\u for\u layout
变量。例如:

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

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

...
...
查看文件 在视图、元素或帮助程序中—只需确保使用内联参数调用脚本方法:

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

通过这种方式,无论您使用给定的js文件调用脚本方法的频率有多高,它只会在结果html输出中出现一次。

使用HtmlHelper::script 如果使用带有
'inline'=>false的方法来加载js文件,默认情况下,这些文件将被包含一次

布局文件 要使用此方法,请确保在布局文件中回显
$scripts\u for\u layout
变量。例如:

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

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

...
...
查看文件 在视图、元素或帮助程序中—只需确保使用内联参数调用脚本方法:

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


通过这种方式,无论您使用给定的js文件调用脚本方法的频率有多高,它只会在结果html输出中出现一次。

您也可以按照documentationTrue使用
$options['one']
,但这仅在js脚本以内联方式转储到视图文件中时才相关(这不应该是这样,我也不鼓励)。您也可以根据documentationTrue使用
$options['once']
,但这仅在js脚本内联转储到视图文件中时才相关(这不应该是这样,我也不鼓励)。