iLeichun

当前位置:首页个人日志

关于HTML5是否会取代Flex的个人看法

分类:个人日志  来源:网络  时间:2011-4-22 21:09:39
    随着互联网的快速发展,在当今的WEB应用开发中,Flex占据的部分越来越大。例如大多数网页游戏,部分界面上是全Flash网站等基本上都是Flex的杰作,其中的一个共同点就是用户的体验效果非常丰富
    然而,几年前推出的HTML5也值得大家关注。在新发布的HTML5中,新增了很多新标签,其中不少是多媒体标签,以支持音频、视频等,例如<audio>、<video>等。在HTML4中,要嵌入这些元素比较繁琐,但在HTML5中将变得非常简单,因此HTML5的编程将变得更方便。
在不少论坛中,有关HTML5是否会取代Flex的讨论也越演越烈。但相关看法也因人而异,支持者认为Flex开发效率低,访问速度慢,而HTML5有很大的优势;反对者认为Flex在当前的RIA(Rich Internet Applications 富互联网应用)应用中占据了大部分市场,网民已经习惯了这种界面带来的丰富体验,只要Adobe继续支持Flex,短时间内HTML5难以取代Flex。
其实我也认为Flex在短时间内不会被HTML5所取代,至少在最近5年内会是这样的。其中一个很重要的原因就是目前完全支持HTML5的浏览器还不多,特别是IE,需要到IE9才支持HTML5。做过网站前台编程的程序员就非常清楚,每个网站都要经过很多主流浏览器的兼容性测试,其中IE6、IE7、Firefox之间就存在着很多的差异。而现在国内大部分人都还没有脱离Windows XP,也就是说还有不少人使用的浏览器依然是IE6,尽管有不少网民会升级IE,但是WEB开发需要满足的是大多数的网民,那么就不能放弃对IE9之前的浏览器版本的支持,何况目前使用IE9的电脑少之又少。在各种浏览器中,IE的发展是很慢的,而使用的人又是最多的,因此互联网的发展也受到了牵连。
总之,HTML5的时代还没有到来,除非Microsoft尽快普及IE9+的使用,或者软件开发商开发大量的浏览器插件以支持各种HTML5 WEB应用。

PHP做久了,最近打算进军Flex了

分类:个人日志  来源:网络  时间:2011-4-4 12:01:07

    自从工作以来,就一直从事PHP编码工作,除了自己的博客是用JSP写的外,很少接触Java,最近打算要进军Flex了。
    我的第一份正式工作是网站建设,编程语言是PHP。PHP是自学的,在学校只学了Java、C两种程序语言。由于有Java基础,学起PHP来确实很轻松,不仅语法相似,某些方面还比Java简单多了。但是PHP与Java相比还是显得有很多不足,比如安全性方面,Java是赫赫有名的。
    长时间的PHP编码,似乎让我开始感到有些油腻了。最近几天又开始琢磨起我的博客来了,确实,很久没有大动干戈了。由于该博客是用Java写的,在编码方面还真有些模糊了,效率由此下降了不少,记得去年刚开始做的时候还能朗朗上手。于是拿着书本温习了几遍,慢慢开始又进入Java了。
    最近可能要转行做Flex了,又开始和Java挂钩了。目前,Flex流行趋势呈明显上升趋势,很多网页游戏都是用Flex做的,貌似大家最熟悉的QQ农场就是一个很好的例子。我相信通过一段时间的适应,我能够在有Java基础的情况下学好Flex。

js复制当前网址的代码

分类:个人日志  来源:网络  时间:2011-3-24 12:33:19

<html>

<meta http-equiv="Content-Type" content="text/html; charset=gbk">

<meta name="Keywords" content="" />
<meta name="Description" content="" />
<meta name="Author" content="lession" />

<head>  
<title>js复制当前网址</title>

<script language="javascript">

<!--   
function copy(){  
    var clipBoardContent="";   
    clipBoardContent+=this.location.href;  
    window.clipboardData.setData("Text",clipBoardContent);   
    alert("复制成功,请粘贴到你的QQ/MSN上推荐给你的好友");  
}  
// -->

</script>

</head>  
 
<body >  
<input type="button" name="copy" onClick=¹copy()¹  value="复制本文网址分享给好友">  
</body>  
</html>

Java线程sleep的用法入门

分类:个人日志  来源:网络  时间:2011-1-24 23:58:51

public class SleepTest extends Thread{
 double total;
 public void run(){
  for(int i=0;i<=10000000;i++){
   total+=i;
  }
  System.out.println("Finished!");
  Thread.sleep(10);
 }

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  SleepTest mt=new SleepTest();
  mt.start();
  try{
   mt.join(10);
  }catch(InterruptedException e){
   e.getMessage();
  }
  System.out.println("Total="+mt.total);
 }

}
 

JDK和Tomcat环境变量的配置

分类:个人日志  来源:网络  时间:2011-1-20 23:53:45

先右键“我的电脑”->“属性”->“高级”->“环境变量”->“系统变量”

看看有没有path变量,没有的话新建一个path变量,有的话直接按以下方式配置:

 

Jdk环境变量变量配置:

JAVA_HOMEC:Program FilesJavajdk1.5.0_06

CLASSPATH.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;

在系统变量Path的值的前面加入以下内容:%JAVA_HOME%in;(这里的分号不能省略)

 

 

 

 

Tomcat环境变量配置:

 

 

 

CATALINA_HOMED:jakarta-tomcat-5.0.30

 

CATALINA_BASEc: omcat 

TOMCAT_HOME: C:Tomcat 

PHP文件上传类

分类:个人日志  来源:网络  时间:2011-1-20 23:27:50

<?php

/**
 *
 * @name 文件管理类
 * @author lession
 *
 */

class File{
 //上传文件大小,以字节记
 var $fileSize;
 
 //上传文件类型,对于IE,识别jpg文件的类型必须是pjpeg,对于 FireFox,必须是jpeg。
 var $fileType;
 
 //上传文件名称
 var $fileName;
 
 //上传文件临时存储位置
 var $fileTemp;
 
 //由文件上传引发的错误代码
 var $fileError;

 /**
  * @name 构造函数
  */
 function File(){
  $this->fileName=$_FILES["file"]["name"];
  $this->fileType=$_FILES["file"]["type"];
  $this->fileSize=$_FILES["file"]["size"];
  $this->fileTemp=$_FILES["file"]["tmp_name"];
  $this->fileError=$_FILES["file"]["error"];
 }

 /**
  * @name 文件上传,只能是图片
  * @param $headFileName 上传文件待命名名称前缀,如20100331101126_21136.gif中的20100331101126
  * @param $fileSize 上传文件大小限制,以kb计
  * @param $dir 上传文件存放目录
  * @return $newFileName
  */
 function uploadFile($headFileName,$fileSize,$dir){
  $fileType1="image/gif";
  $fileType2="image/jpeg";
  $fileType3="image/pjpeg";
  $fileType4="image/x-png";
  //没有选择文件
  if ($this->fileName==NULL){
   //表单中没有选择文件
   if ($this->fileError==4){
    echo "<script>alert(¹Choose a picture,please!¹);</script>";
    return ;
   }
   //刚点击链接
   else{
    //echo "I¹m dead2!";
    return ;
   }
  }
  //已选择文件
  else {
   switch ($this->fileError){
    //文件大小超过了php.ini里面允许的大小
    case 1:
     echo "<script>alert(¹The size of picture must be less than 1M!¹);</script>";
     return ;
     break;
    case 3:
     echo "<script>alert(¹Error!¹);</script>";
     return ;
     break;
    default:
     if(!($this->fileType== $fileType1||$this->fileType==$fileType2||$this->fileType==$fileType3||$this->fileType==$fileType4)){
      echo "<script>alert(¹Only for *.jpg,*.jpeg,*.gif or *.png!¹);</script>";
      return ;
     }
     if(($this->fileSize/1024>$fileSize)){
      echo "<script>alert(¹The size of picture must be less than 1M!¹);</script>";
      return ;
     }else{
           $newFileName=$this->fileType==$fileType1?$headFileName."_".rand(1000,99999).".gif":($this->fileType==$fileType4?$headFileName."_".rand(1000,99999).".png":$headFileName."_".rand(1000,99999).".jpg");
         /*echo "文件名: ".$this->fileName."<br />";
         echo "文件类型: ".$this->fileType."<br />";
         echo "文件大小: ".($this->fileSize/1024)." Kb<br />";
         echo "存储临时目录: ".$this->fileTemp."<br />";*/
         if (file_exists($newFileName)){
              echo "<script>alert(¹Picture upload fail!¹);</script> ";
              return ;
           }else{
            //echo $newFileName."<br>";
            move_uploaded_file($this->fileTemp,$dir.$this->fileName);
           rename($dir.$this->fileName,$dir.$newFileName);
            //echo "存储目录: ".$dir.$newFileName;
            //echo "<script>alert(¹照片上传成功!¹);</script>";
            return $newFileName;
           }
     }
   }//switch结束
  }
 }//function uploadFile($fileSize,$dir)结束
 
 /**
  * @name 大文件上传,不能是图片
  * @param $headFileName 上传文件待命名名称前缀,如20100331101126_21136.gif中的20100331101126
  * @param $fileSize 上传文件大小限制,以kb计
  * @param $dir 上传文件存放目录
  * @return $newFileName
  */
 function uploadBigFile($headFileName,$fileSize,$dir){
  //没有选择文件
  if ($this->fileName==NULL){
   //表单中没有选择文件
   if ($this->fileError==4){
    echo "<script>alert(¹Choose a file,please!¹);</script>";
    return ;
   }
   //刚点击链接
   else{
    //echo "I¹m dead2!";
    return ;
   }
  }
  //已选择文件
  else {
   switch ($this->fileError) {
    //文件大小超过了php.ini里面允许的大小
    case 1:
     echo "<script>alert(¹The size of picture must be less than ".($fileSize/1024)."M!¹);</script>";
     return ;
     break;
    case 3:
     echo "<script>alert(¹Error!¹);</script>";
     return ;
     break;
    default:
     if(($this->fileSize/1024>$fileSize)){ 
      echo "<script>alert(¹The size of picture must be less than ".($fileSize/1024)."M!¹);</script>";
      return ;
     }else{
           $newFileName=$headFileName."_".rand(1000,99999).".".mb_substr($this->fileName,strrpos($this->fileName,".")+1,3,"utf8");
         /*echo "文件名: ".$this->fileName."<br />¹;
         echo "文件类型: ".$this->fileType."<br />";
         echo "文件大小: ".($this->fileSize/1024)." Kb<br />";
         echo "存储临时目录: ".$this->fileTemp."<br />";*/
         if (file_exists($newFileName)){
              echo "<script>alert(¹file onload fail!¹);</script> ";
              return ;
           }else{
            //echo $newFileName."<br>";
            move_uploaded_file($this->fileTemp,$dir.$this->fileName);
           rename($dir.$this->fileName,$dir.$newFileName);
            //echo "存储目录: ".$dir.$newFileName;
            //echo "<script>alert(¹照片上传成功!¹);</script>";
            return $newFileName;
           }
     }
   }//switch结束
  }
 }//function uploadBigFile($fileSize,$dir)结束

 /**
  * @name 文件修改
  * @param $headFileName 上传文件待命名名称前缀,如20100331101126_21136.gif中的20100331101126
  * @param $dir
  * @param $fileName
  * @param $fileSize
  */
 function updateFile($headFileName,$dir,$fileName,$fileSize) {
  //先删除原文件
  $this->deleteFile($dir,$fileName);
  //再新增文件
  $newFileName=$this->uploadFile($headFileName,$fileSize,$dir);
  return $newFileName;
 }

 /**
  * @name 文件删除
  * @param $fileName 要删除的文件名
  */
 function deleteFile($dir,$fileName) {
  if (file_exists($dir.$fileName))
   unlink($dir.$fileName);
  else
   echo "No such file!";
 }
 
}

?>

PHP数据库操作类

分类:个人日志  来源:网络  时间:2011-1-20 23:25:11

<?php

/**
 *
 * @name 数据库管理类
 * @author lession
 *
 */

class Database{

 var $host=¹localhost¹; //数据库地址
 var $database=¹mydb¹;   //数据库名称
 var $user=¹root¹;   //用户名
 var $password=¹mysql¹;   //密码

 /**
  * @name 构造函数
  */
  function Database(){

 }

 

 /**
  * @name 1.连接数据库
  * @return $conn
  */
  function connect(){
  $conn=mysql_connect($this->host,$this->user,$this->password) or die("<script>alert(¹数据库连接出错!¹);</script>");
  return $conn;
 }

 

 /**
  * @name 选择数据库
  * @param $conn
  * @return $result
  */
  function selectDb($conn){
  if($conn)
    $result=mysql_select_db($this->database) or die("<script>alert(¹数据库选择出错!¹);</script>");
  return $result;
 }

 

 /**
  * @name 数据添加
  * @param $table
  * @param $field
  * @param $value
  * @param $url
  * @return $result
  */
  function add($table,$field,$value,$url){
  $msg1="添加成功!";
  $msg2="添加失败!";
  $conn=$this->connect();
  $this->selectDb($conn);
  mysql_query("set names ¹utf8¹");

  $field=implode(",",$field);
  $value=implode(",",$value);
  $sql="insert into $table($field) values($value)";

  $result = mysql_query($sql) or die("<script>alert(¹新增数据出错!¹);</script>");
  $this->result($result,$msg1,$msg2,$url);
  $this->close($conn);
  return $result;
 }

 

 /**
  * @name 数据查询
  * @param $sql
  * @return $result
  */
  function select($sql){
  $conn=$this->connect();
  $this->selectDb($conn);
  mysql_query("set names ¹utf8¹");
//  echo $sql;
  $result=mysql_query($sql) or die("<script>alert(¹查询数据出错!¹);</script>");
  $this->close($conn);
  return $result;
 }

 

 /**
  * @name 数据修改1(显示修改结果)
  * @param $table
  * @param $field
  * @param $value
  * @param $id
  * @param $url
  * @return $result
  */
  function update($table,$condition,$id,$url){
  $msg1="修改成功!";
  $msg2="修改失败!";
  $conn=$this->connect();
  $this->selectDb($conn);
  mysql_query("set names ¹utf8¹");

  $condition=implode(",",$condition);
  $sql="update $table set $condition where id=$id";

  $result = mysql_query($sql) or die("<script>alert(¹修改数据出错!¹);</script>");
  $this->result($result,$msg1,$msg2,$url);
  $this->close($conn);
  return $result;
 }

 

 /**
  * @name 数据修改2(不显示修改结果)
  * @param $table
  * @param $field
  * @param $value
  * @param $id
  * @param $url
  */
  function update2($table,$condition,$id){
  $conn=$this->connect();
  $this->selectDb($conn);
  mysql_query("set names ¹utf8¹");

  $condition=implode(",",$condition);
  $sql="update $table set $condition where id=$id";

  $result = mysql_query($sql) or die("<script>alert(¹修改数据出错!¹);</script>");
  $this->close($conn);
  return $result;
 }

 

 /**
  * @name 数据删除
  * @param $table
  * @param $id
  * @param $url
  * @return $result
  */
  function del($table,$id,$url){
  $msg1="删除成功!";
  $msg2="删除失败!";
  $conn=$this->connect();
  $this->selectDb($conn);
  mysql_query("set names ¹utf8¹");

  $sql="delete from $table where id=$id";

  $result = mysql_query($sql) or die("<script>alert(¹删除数据出错!¹);</script>");
  $this->result($result,$msg1,$msg2,$url);
  $this->close($conn);
  return $result;
 }

 

 /**
  * @name 获取记录总数
  * @param $result
  * @return $count
  */
  function rows($result){
  $count=mysql_num_rows($result);
  return $count;
 }

 

 /**
  * @name 获取数据记录
  * @param $result
  * @return $fetch
  */
  function fetch($result){
  $fetch=mysql_fetch_array($result);
  return $fetch;
 }

 

 /**
  * @name 显示数据库操作结果
  * @param $result
  * @param $msg1
  * @param $msg2
  * @param $url
  */
  function result($result,$msg1,$msg2,$url){
  if($result>0)
     echo "<script>window.alert(¹$msg1¹);window.location.href=¹$url¹;</script>";
  else
     echo "<script>window.alert(¹$msg2¹);window.history.back();</script>";
 }

 

 /**
  * @name 关闭数据库连接
  * @param $conn
  */
  function close($conn){
  mysql_close($conn) or die("<script>alert(¹关闭数据库连接出错!¹);</script>");
 }

}

?>

Java中List接口用法入门

分类:个人日志  来源:网络  时间:2011-1-20 23:20:59

import java.util.List;
import java.util.LinkedList;
import java.util.ArrayList;

public class ListTest_1{
 public static void main(String[] args){

  System.out.println("The class is to test java.util.List; ");
  List li=new LinkedList();
  //List li=new ArrayList();
  li.add("a");
  li.add("b");
  li.add("c");
  li.add("d");
  li.add("e");
  li.add("f");
  li.add(1,"1");
  //li.add(9,"2");该写法错误,不存在第9个位置
  //取得元素总个数
  System.out.println("The size of element is: "+li.size());
  //取得第一个元素
  System.out.println("The first element is: "+li.get(0)+" ");

  System.out.println("All of the element is:");
  for(int i=0;i<li.size();i++){
   System.out.println("Element "+i+": "+li.get(i));
  }

 }
/*
运行结果
The class is to test java.util.List;

The size of element is: 7
The first element is: a

All of the element is:
Element 0: a
Element 1: 1
Element 2: b
Element 3: c
Element 4: d
Element 5: e
Element 6: f
*/
}

Java中把Date类型转换成Long类型

分类:个人日志  来源:网络  时间:2011-1-20 23:10:25

import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class TimeToLong {

 /**
  * @param args
  */
 public static void main(String[] args) throws ParseException{
  // TODO Auto-generated method stub
  Date d=new Date();
  long t=d.getTime();
  System.out.println(t);
  
  //将字符串类型转化成Date类型
  String s="2009-08-04 14:37:47";
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  Date d2=null;
  d2=sdf.parse(s);//将String to Date类型
  System.out.println(d2);
  
  long t3=d2.getTime();
  System.out.println(t3);
 }

}

再望2010,展望2011

分类:个人日志  来源:网络  时间:2010-12-31 23:16:42
365天就这样过去了,2010年过得很平淡,但也还充实。可惜又逢物价猛涨,昔日的金融危机刚过去,今朝仍是金融危机,似乎来得更危机。虽然没有看到盛大的世博与激情的亚运,但还是幸运地目睹了“嫦娥二号”即将消失在天空那一刹那的耀眼光芒。2009年在编程,2010年仍然在编程,有所不同的是2009年的网站访问覆盖范围小得可怜,2010年却覆盖了“七大洲四大洋”。
随着1月9日下午第一个php程序运行成功以来,一直团结在以php为核心的IT周围,以推动中国信息化建设,促进第三产业又好又快发展为目标。经过近一年的努力,完成了大大小小28个php项目,其中5个供测试研究用。虽然数学没学好,但对数字还是很感兴趣,经程序统计,一年里编写php文件共约1500个,代码总行数约130000行;另有css文件约300个,代码总行数约25000行;js文件约50个,代码总行数约5000行。
4月用jsp做了个人博客,Java文件24个,jsp文件近40个,代码总行数约5000行。与2009年相比,Java程序比例显著下降,php和Java呈现明显的“阴盛阳衰”局面,似乎有点悲哀,又似乎达到了一种平衡。
在毕业的那个学期,由于4月进行的综合测评中成绩突出,拿到了一等奖学金,算是一点安慰。还有值得一提的是,经过努力,在新增2000余个单词后,6月成功通过了英语四级,还算懂得点洋文了,做软件这东西不懂英文是不行的。看来这个学期的确很幸运,所谓“风水轮流转”貌似有点道理,但我还是不信类似的“神话”。
可惜的是有些之前经常做的事也没做过,没上过南普陀,没碰过海水……。不过也有点新鲜事,之前一直认为厦门的蚊子对我很友好,从来不咬我,认为“有朋自远方来,不亦悦乎”。但2010年有点意外,到了冬天还被蚊子咬过,却又开始把蚊子当“911”对待,做出了株连九族的决定。
仔细看来,似乎仰望了天空,但没脚踏实地,2010到底是怎么啦?
2011如何打算?计算机“管家”书写传奇……