2012-02-23 33 views

回答

0

的元素是當查看有代碼HTML和PHP反覆,requestAction是一個比一個大的功能,當集成的插件。但你不能濫用requestAction。

示例元素:

echo $this->element("footer", array('var'=> 1)); 
// element footer, raisin in the array var 

例如requestAction:

echo $this->requestAction('/comments/add/'.$_model.'/'.$_foreignKey, array('return')); 
// plugin comments, function add function 
+0

嗨del_dan,感謝您的答覆,但我不太明白你的答案。也許如果我詳細說明。我有一張我想在差異顯示的文章表。取決於哪家公司創作的視圖。現在我在視圖中調用一個requestAction,因爲爲每個文章列表創建一個元素似乎很費力。 – jezza 2012-02-23 09:01:08

+0

在你的情況下,最好是requestAction,因爲你在控制器中使用了一個函數。 – 2012-02-23 09:29:32

0

元件()的負載只是一個元件;即視圖片段。這幾乎就像你將這個.ctp複製粘貼到你使用它的地方一樣。唯一的區別是您可以調整緩存行爲並根據需要傳遞選定的視圖變量。

requestAction()由調度具有給定參數(例如,URL)蛋糕請求在蛋糕內部進行完整的請求。在這裏,您還可以調整緩存,並且可以選擇將呈現的視圖或控制器的操作返回值作爲requestAction()的返回值。

恕我直言,這個功能 - 在正確使用時 - CakePHP的是一個非常小衆的功能,你可以創建部分網站。例如。一個動作渲染的評論,一個動作呈現帖子的身體,一個動作渲染菜單,一個動作,要求所有的這些,並把它變成一個單一的DIV,一個動作,要求格並將其放入佈局。可以高效地緩存每個圖層,並且這種設計對AJAX非常有用,您總是隻想加載頁面的某些部分,但在第一次加載頁面時需要加載所有這些部分。你甚至可以有每個的JSON和HTML表示。

+0

嗨西比迪巴,謝謝你的信息。那是我的計劃,打破了一切。我想我試圖擁有儘可能少的ctp文件,並通過緩存等方式實現性能最大化。我擔心的是,當網站遇到嚴重的流量時,這種方法會比其他方式更好。 – jezza 2012-02-24 02:44:02

相關問題