在cakephp中使用ajax的最佳方式?

时间:2012-07-03 09:06:35

标签: cakephp

我通过使用JS helper在我的cakephp应用程序中使用ajax。所以我不需要编写jquery代码。 Js帮助器自动在我的文件中添加代码。以下是JS帮助程序编写代码的行。

echo $this->Js->writeBuffer(array('cache'=>true));

当我设置cache属性的真值时,每次在我的代码中以下列方式添加在js文件夹中创建的新js文件和新脚本时。

<script type="text/javascript" src="filename.js"></script>

但是当我将缓存值更改为false时,我的文件中逐行添加了所有js代码。

现在我的问题是,哪种方式最好的方式,页面执行速度快。 我的第二个问题是,当我设置缓存的真值时,js文件只添加一次,现在js helper一次又一次地添加js文件,当页面重新加载或刷新时。

1 个答案:

答案 0 :(得分:0)

为了记录这个问题可能措辞得更好。

第一个问题,执行速度:为JS的每一个位保存一个新文件可能不是可行的方法。希望下面的代码可以解释一个更好的方法,并使你的第二个问题没有实际意义。

// In /app/View/Layouts/default.ctp
...
<head>
 ...
  <?php echo $this->fetch('script'); ?>
 ...
</head>
<body>
 ...
  <?php echo $this->Js->writeBuffer(); 
 ...
</body>

一旦到位,您可以使用

将脚本文件添加到视图或布局中

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

(注意没有.js扩展名)

或添加自定义Js:

<?php
    $customJs = "alert('Hi!');";
    echo $this->Html->scriptBlock($customJs, array('inline'=>false));
?>

希望有所帮助。