1

JS helper.so を使用して Cakephp アプリケーションで ajax を使用しているため、jquery コードを記述する必要はありません。Js ヘルパーは自動的にコードをファイルに追加します。以下は、JS ヘルパーがコードを記述する行です。

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

キャッシュ属性の真の値を設定すると、jsフォルダーに作成された新しいjsファイルと新しいスクリプトが次の方法でコードに追加されるたびに。

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

しかし、キャッシュ値を false に変更すると、すべての js コードがファイルに 1 行ずつ追加されます。

今私の質問は、どの方法が最良の方法であるか、ページの実行が速いことです。そして私の2番目の質問は、キャッシュの真の値を設定すると、jsファイルが1回だけ追加され、現在、ページがリロードまたは更新されたときに、jsヘルパーがjsファイルを何度も追加することです。

4

1 に答える 1

0

記録としては、この質問はもっとうまく表現できたはずです。

最初の質問、実行速度: JS のすべてのビットに対して新しいファイルを保存することは、おそらく適切ではありません。願わくば、以下のコードがより良い方法を説明し、2 番目の質問を意味のないものにしてくれることを願っています。

// 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 拡張子がないことに注意してください)

または、カスタム J を追加します。

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

それが役立つことを願っています。

于 2012-12-03T04:24:34.310 に答える