Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5120220
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2010-02-22 03:07:41

从学ZendFarmework以来,就在用Zend_Form这个组件。当然对于这个组件的好坏。个人有个人的看法。。就说从项目开发的角度来看,如何让美工和程序员更好的去更改程序员所写的Form。这是个很大的问题,因为不可能让美工去改程序员的东西。所以,在开发的过程中真的,有点想用 Zend_Form,又怕用。。因为很多不方便的。特别是在要做页面修改的时候,真有点难。关于这问题,先且不说。
现在我来说一下我自己在用Zend_Form过程中遇到的问题。其中有二点:

第一:前期在使用Zend_Form时,排版和布局是一个比较费时间的事情。
第二:当页面载入我们写好的Zend_Form时,页面解析速度很慢。

第一点解决方式与感想:我在运用的过程中,刚开始时候是真的非常的吃力。。就算不需要美工去排版,我自己来写一个Zend_Form类都是相当的想死。刚开比如说一个最简单的问题:我想把一个密码文本框放在用户名文本框的后面?如何排呢?我要在Form类里面怎样写呢?当时真的很难受。我不可能总用 Zend_Form自带的标签吧?没有任何办法,通过自己看它的源码与手册才知道,原来很简单。更是感觉到ZendFramewok的强大,灵活之处。上面的小问题我们可以自定义的Zend_Form_Decorator装饰器或是自己定义Form的标签。
因此这个问题的解决方式,只有通过自己的运用与实践,就可以很好的解决掉。

第二点:如果你写好你的Form后,执行一下你要掉用它的页面,你会发现页面很慢,这基实就是Zend_Form的解析速度影响到你的页面执行效率。当你的Form表单越来越多的时候,你会发现更是慢到你不可想像的地步。关于这个问题在PHPChina也有讨论具体地址:  其实这里的讨论也正好也给我提醒了一点。。如果要用Zend_Form就必须提高他的执行速度。我也运用缓存试试看如何。我先测试了一下我在运用 Zend_form页面的执行页面所需要用的时间,晕了(0.2秒多)。当我运用缓存Zend_Form文件时,再查看页面的执行时间(0.04秒)。果然提高效率到5倍以上。真是让人高兴啊。哈哈。。
当然我这里并不会遇到上面那贴子所说的修改,或验证问题。更不需要用JS替换什么。我不知道贴上楼主是怎样遇到修改或验证问题。
现在我把我缓存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。根据你的缓存时间(缓存是否过期)取到Zend_Form缓存.程序在第二点有说明。


写到这里,基本上加速Zend_Form的问题得到一个解决。当然这是加速的效果不算太显著。

阅读(1611) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~