- 論壇徽章:
- 0
|
從學ZendFarmework以來,就在用Zend_Form這個組件。當然對于這個組件的好壞。個人有個人的看法。。就說從項目開發(fā)的角度來看,如何讓美工和程序員更好的去更改程序員所寫的Form。這是個很大的問題,因為不可能讓美工去改程序員的東西。所以,在開發(fā)的過程中真的,有點想用 Zend_Form,又怕用。。因為很多不方便的。特別是在要做頁面修改的時候,真有點難。關(guān)于這問題,先且不說。
現(xiàn)在我來說一下我自己在用Zend_Form過程中遇到的問題。其中有二點:
第一:前期在使用Zend_Form時,排版和布局是一個比較費時間的事情。
第二:當頁面載入我們寫好的Zend_Form時,頁面解析速度很慢。
第一點解決方式與感想:我在運用的過程中,剛開始時候是真的非常的吃力。。就算不需要美工去排版,我自己來寫一個Zend_Form類都是相當?shù)南胨。剛開比如說一個最簡單的問題:我想把一個密碼文本框放在用戶名文本框的后面?如何排呢?我要在Form類里面怎樣寫呢?當時真的很難受。我不可能總用 Zend_Form自帶的標簽吧?沒有任何辦法,通過自己看它的源碼與手冊才知道,原來很簡單。更是感覺到ZendFramewok的強大,靈活之處。上面的小問題我們可以自定義的Zend_Form_Decorator裝飾器或是自己定義Form的標簽。
因此這個問題的解決方式,只有通過自己的運用與實踐,就可以很好的解決掉。
第二點:如果你寫好你的Form后,執(zhí)行一下你要掉用它的頁面,你會發(fā)現(xiàn)頁面很慢,這基實就是Zend_Form的解析速度影響到你的頁面執(zhí)行效率。當你的Form表單越來越多的時候,你會發(fā)現(xiàn)更是慢到你不可想像的地步。關(guān)于這個問題在PHPChina也有討論具體地址:
http://bbs.phpchina.com/viewthread.php?tid=98335
其實這里的討論也正好也給我提醒了一點。。如果要用Zend_Form就必須提高他的執(zhí)行速度。我也運用緩存試試看如何。我先測試了一下我在運用 Zend_form頁面的執(zhí)行頁面所需要用的時間,暈了(0.2秒多)。當我運用緩存Zend_Form文件時,再查看頁面的執(zhí)行時間(0.04秒)。果然提高效率到5倍以上。真是讓人高興啊。哈哈。。
當然我這里并不會遇到上面那貼子所說的修改,或驗證問題。更不需要用JS替換什么。我不知道貼上樓主是怎樣遇到修改或驗證問題。
現(xiàn)在我把我緩存Zend_Form這塊的程序步驟寫下來:
1。配置好你的文件緩存目錄。
這里我用Zend_Cache里的文件緩存,大致程序如下:
?php
$frontend = array(
'lifetime' => 120,//緩存時間
'automatic_serialization' => true);
$this->cache = Zend_Cache::factory('Core', 'File',
$frontend,array('cache_dir' =>CACHE_DIR.'/forms'));
2。把Zend_Form寫入緩存文件。
?php
//檢測是否存在緩存,如果不存在就生成
if(!$form = $this->cache->load('rentoutform')) {
$form = new comadmin_forms_Rentout();//取到Zend_Form表單類
$this->cache->save($form, 'rentoutform'); //生成Zend_Form緩存
}
$form->submit->setValue('確定修改出租信息');
3。根據(jù)你的緩存時間(緩存是否過期)取到Zend_Form緩存.程序在第二點有說明。
寫到這里,基本上加速Zend_Form的問題得到一個解決。當然這是加速的效果不算太顯著。
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/16928/showart_2183570.html |
|