JavaScript对不同html对象的取值、赋值方法
取值操作:
//对input等的取值
//通过id属性取值
var ht=document.getElementById("search").value;
//通过name属性取值
var ht=document.getElementByName("search").value;
//对div、span等的取值
//通过id属性取值
var ht=document.getElementById("search").innerHTML;
//通过标签名称取值
var ht=document.getElementByName("search").innerHTML;
赋值操作:
//对input等的赋值
//通过id属性赋值
document.getElementById("c").value=bb;
//通过name属性赋值
document.getElementByName("c").value=bb;
//对div、span等的赋值 //通过id属性赋值
document.getElementById("c").innerHTML=ht;
//通过标签名称赋值
document.getElementByName("c").innerHTML=ht;
Flex中AS错误“packages cannot be nested”的原因与解决
当在MXML中的使用如下语句导入外部as文件时,一般情况下是没有问题的
<mx:Script source="Myflex.as" />
但如果外部as文件提示错误“packages cannot be nested”,原因是:导入的Myflex.as中使用了package定义包名
使用<mx:Script source="Myflex.as" />导入的外部as文件不能是类文件(提示class cannot be nested错误),也不能有包package定义(提示packages cannot be nested错误),只能是as脚本。
说明:若要使用类文件,就要写在CDATA中,使用import导入后初始化,否则将提示错误。如:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" >
<mx:Script>
<![CDATA[
import com.Man;
man:Man=new Man();
man.name="张三";
]]>
</mx:Script>
<mx:Canvas x="0" y="0" id="mapCanvs" verticalScrollPolicy="auto" horizontalScrollPolicy="auto" />
</mx:Application>
关于HTML5是否会取代Flex的个人看法
PHP常见几种缓存技术分析
在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理。
普遍使用的缓存技术
数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件
中,以后同样的查询结果就直接从缓存文件中获得。
页面缓存:
每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些缓存类通常有此功能)
内存缓存:
在里就不介绍了,不是本文所要讨论的,只简单提一下:
Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。
dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。
以上的缓存技术虽然能很好的解决频繁查询数据库的问题,但其缺点在在于数据无时效性,下面我给出我在项目中常用的方法:
时间触发缓存:
检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。
设定时间内不去判断数据是否要更新,过了设定时间再更新缓存。以上只适合对时效性要求不高的情况下使用 ,否则请看下面。
内容触发缓存:
当插入数据或更新数据时,强制更新缓存。
在这里我们可以看到,当有大量数据频繁需要更新时,最后都要涉及磁盘读写操作。怎么解决呢?我在日常项目中,通常并不缓存所有内容,而是缓存一部分不经常变的内容来解决。但在大负荷的情况下,最好要用共享内存做缓存系统。
到这里PHP缓存也许有点解决方案了,但其缺点是,因为每次请求仍然要经过PHP解析,在大负荷的情况下效率问题还是比效严重,在这种情况下,也许会用到静态缓存。
静态缓存
这里所说的静态缓存是指HTML缓存,HTML缓存一般是无需判断数据是否要更新的,因为通常在使用HTML的场合一般是不经常变动内容的页面。数据更新的时候把HTML也强制更新一下就可以了。
PHP和JAVA详细比较
一、 语言比较
PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点。语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发。而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法。所以java不如php好学。
Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行。Java的Web开发首先最容易想到的就是JSP(现在已经到JSP2.0),原来的java的Web开发都是用servlet来实现的,用servlet来开发需要程序员在java的源文件中嵌入大量的html代码。所以后来就出现了JSP,JSP可以方便的嵌入到html文件当中,其实jsp文件在服务器上执行的时候首先会被应用服务器转换成servlet,然后再编译执行。Jsp可以通过servlet和JavaBean的支持产生强大的功能。JavaBean 是一种可复用的、跨平台的软件组件。使用javabean可以方便的实现java代码和html的分离,能够增强系统的功能和软件的复用性。
Java的Web开发属于SUN公司定义的J2EE其中的规范。而且在J2EE中包括了java的Web开发的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特别适合于做大型的企业级的应用。
二、数据库访问比较
Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库。访问数据库的接口比较统一。
PHP对于不同的数据库采用不同的数据库访问接口,所以数据库访问代码的通用性不强。例如:用Java开发的Web应用从MySQL数据库转到Oracle数据库只需要做很少的修改。而PHP则需要做大量的修改工作。
三、系统设计架构比较
采用Java的Web开发技术,需要使用的是面向对象的系统设计方法,而PHP还是采用面向过程的开发方法。所以用Java进行开发前期需要做大量的系统分析和设计的工作。
四、跨平台性
Java和PHP都有很好的跨平台的特性。几乎都可以在不作任何修改的情况下运行在Linux或者Windows等不同的操作系统上。
五、 开发成本比较
PHP最经典的组合就是:PHP + MySQL + Apache。非常适合开发中小型的Web应用,开发的速度比较快。而且所有的软件都是开源免费的,可以减少投入。
Java的Web应用服务器有免费Tomcat、JBoss等,如果需要更好的商业化的服务有:Web Sphere和 Web logic。
六、分布式多层架构比较
PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的Web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。
下面简要的说一下Struts,它实质上是在JSP Model2的基础上实现的一个MVC(Model、View、Controler)框架。JSP Model2体系结构是一种联合使用JSP 与Servlet 来提供动态内容的方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂,其优势越明显。
七、源代码安全
PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。
Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。
八、性能比较
有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒。数据库测试中,二者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。
|
综上所述,PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高。
PHP做久了,最近打算进军Flex了
自从工作以来,就一直从事PHP编码工作,除了自己的博客是用JSP写的外,很少接触Java,最近打算要进军Flex了。
我的第一份正式工作是网站建设,编程语言是PHP。PHP是自学的,在学校只学了Java、C两种程序语言。由于有Java基础,学起PHP来确实很轻松,不仅语法相似,某些方面还比Java简单多了。但是PHP与Java相比还是显得有很多不足,比如安全性方面,Java是赫赫有名的。
长时间的PHP编码,似乎让我开始感到有些油腻了。最近几天又开始琢磨起我的博客来了,确实,很久没有大动干戈了。由于该博客是用Java写的,在编码方面还真有些模糊了,效率由此下降了不少,记得去年刚开始做的时候还能朗朗上手。于是拿着书本温习了几遍,慢慢开始又进入Java了。
最近可能要转行做Flex了,又开始和Java挂钩了。目前,Flex流行趋势呈明显上升趋势,很多网页游戏都是用Flex做的,貌似大家最熟悉的QQ农场就是一个很好的例子。我相信通过一段时间的适应,我能够在有Java基础的情况下学好Flex。
JSP自动生成静态页面类
public class JspToHtml {
private static String title = "标题1";
private static String context = "标题2";
private static String editer = "标题3";
public static boolean jspToHtmlFile(String filePath,String htmlFile){
String str = "";
try {
FileInputStream is = new FileInputStream(filePath);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String tempStr = "";
while((tempStr = br.readLine()) != null){
str = str + tempStr;
}
br.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
try {
str = str.replaceAll("##title##", title);
str = str.replaceAll("##context##", context);
str = str.replaceAll("##editer##", editer);
System.out.println(str);
File file = new File(htmlFile);
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(str);
writer.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
String url = "D:\Workspaces\base.html";
String savePath = "d:\" + 11 + ".html";
jspToHtmlFile(url, savePath);
}
}
JspToHtml可以做为一个工作类使用,动态生成静态页面一般会用在新闻发布系统,网站中的新闻、公告等。之所以以静态页面的方式显示,是为了对搜索引擎更友好并提高页面访问速度。
js复制当前网址的代码
<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>
SQL函数newID()和RAND()详解
SELECT * FROM Northwind..Orders ORDER BY NEWID()
--随机排序
SELECT TOP 10 * FROM Northwind ORDER BY NEWID()
--从Orders表中随机取出10条记录
示例
A.对变量使用 NEWID 函数
以下示例使用 NEWID() 对声明为 uniqueidentifier 数据类型的变量赋值。在测试 uniqueidentifier 数据类型变量的值之前,先输出该值。
-- Creating a local variable with DECLARESET syntax.
DECLARE @myid uniqueidentifier
SET @myid = NEWID()
PRINT ¹Value of @myid is ¹+ CONVERT(varchar(255), @myid)
下面是结果集:
Value of @myid is 6F9619FF-8B86-D011-B42D-00C04FC964FF
注意:
NEWID 对每台计算机返回的值各不相同。所显示的数字仅起解释说明的作用。
随机函数:rand()
在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数。那就看下面的两种随机取整数的方法:
1、
A:select floor(rand()*N) ---生成的数是这样的:12.0
B:select cast( floor(rand()*N) as int) ---生成的数是这样的:12
2、
A:select ceiling(rand() * N) ---生成的数是这样的:12.0
B:select cast(ceiling(rand() * N) as int) ---生成的数是这样的:12
其中里面的N是一个你指定的整数,如100,可以看出,两种方法的A方法是带有.0这个的小数的,而B方法就是真正的整数了。
大致一看,这两种方法没什么区别,真的没区别?其实是有一点的,那就是他们的生成随机数的范围:
方法1的数字范围:0至N-1之间,如cast( floor(rand()*100) as int)就会生成0至99之间任一整数
方法2的数字范围:1至N之间,如cast(ceiling(rand() * 100) as int)就会生成1至100之间任一整数
对于这个区别,看SQL的联机帮助就知了:
比较 CEILING 和 FLOOR
CEILING 函数返回大于或等于所给数字表达式的最小整数。FLOOR 函数返回小于或等于所给数字表达式的最大整数。例如,对于数字表达式 12.9273,CEILING 将返回 13,FLOOR 将返回 12。FLOOR 和 CEILING 返回值的数据类型都与输入的数字表达式的数据类型相同。
现在,各位就可以根据自己需要使用这两种方法来取得随机数了^_^
另外,还要提示一下各位菜鸟,关于随机取得表中任意N条记录的方法,就用newid():
select top N * from table_name order by newid() ----N是一个你指定的整数,表是取得记录的条数.
Android前景、前途如何?(转)
来自:http://www.mobpub.net/viewthread.php?tid=5751&extra=
现在移动开发 市场上平台 林立,各自圈地盘,android平台也异军突起,甚至被誉为对抗iPhone 最有实力的平台,而且预计未来将会超过iPhone 独领风骚。Android 真的就这么牛吗?真的就非常完美吗?带着疑问,记者对eoeandroid开发社区的开发者进行了解,从实际的开发者那里对android平台有了新的解读。
当 android出来的时候,大家都非常兴奋,希望这个开放平台能够做好做大,有益于移动互联网 整个产业链的每一个角色:软件 平台提供商Google , 元器件供应商与设备 制造商, 网络 运营商, 应用 开发者, 消费者。但是这从两年看来,android发展的不够好,反倒是进入了一个问题多发的混乱局面。
android面临的问题:
首要问题--模式 :其实模式问题说到底是一个盈利问题。 产业链中的每一个角色都想获得更多的利润。
对角色A 软件平台提供商google来说,盈利主要是来自广告和自身的增值服务。
对角色B 元器件和设备制造商来说,卖出去的终端 数量决定了他们的盈利。
对角色C 网络运营商来说,用它的网络和增值服务来盈利。
对角色D 应用开发者来说, 靠用户下载 量 和 广告植入补贴来盈利。
对角色E 消费者来说,要为所有这些链上的角色买单,但是消费者有选择权。智能手机 的玩家来说倾向于新潮,时尚的外观, 强悍的硬件 ,绚丽实用,易用的软件,和相对低廉的价格。
苹果 的模式是封闭,相当于OEM+软件平台提供商(角色A和B的合体), 自身控制硬件和软件质量, 实现无缝优化,凭借时尚的外观,彪悍的硬件,良好的用户体验赢得消费者口碑。凭借与运营商合作,和巨大的市场降低产品成本。 苹果自身角色AB盈利,从C那里得到分成,从D那里得到分成,与CD一起从消费者那里盈利。苹果成了最大的盈利者。
再来看看android的模式, 开放。 虽然说开放是好事,其实也是坏事。开放了大家都可以免费用,免费做。这造成一个假象,开放降低成本,赢得更多的消费者。事实呢?开放模式下,角色混乱,大家各为其主,都想越足更广的领域,获取更多的利益。泛而不精,急功近利直接导致了用户体验差的结果,最终每个角色在消费者心理都成了大白菜,久而久之消费者对其失去信心。
android的现状大家很清楚,市场上充斥了各种品牌,各种档次硬件,各种应用的消费品, 说其为大白菜,一点不夸张。 再来看每个角色, google升级快, 设备商跟不上,消费者抱怨(最典型HTC的系统 升级慢问题,各种民间ROM混乱的问题)。
设备商想打响自己的品牌,涉足更多领域,推出很多款终端抢占,其开发成本,维护成本如何?可想而知质量如何?消费者抱怨(如HTC推出自己的SENSE界面 ,光是每次系统升级就耗费大量的再开发成本,最终让用户买单,不稳定的东西自然质量问题多,屏,触屏,还有程序 的问题,谁愿意花很多钱买这个质量不高的东西?) 运营商甚至开始涉足研发,不再是简单的采购,合作,推广,推自己的平台,推自己的应用商店 ,甚至推自己的终端。简直就想一口吞掉整块蛋糕。结果如何?一样是提供给用户低劣的产品,谁指望一个之前做运营不做研发的厂商能够提供好质量的消费品和软件?于是消费者又抱怨。
对于应用开发者,自然不用说,空有满腔热忱。不仅仅角色A.B.C带来的混乱局面让开发者疲于写多个程序, 更重要的是收入甚微。 说个简单的道理,10000个用户用苹果IPHONE,开发者只需要开发一次,就可以从他们那里盈利。
而android呢, 10个厂商或者运营商各分了1000个用户, 开发者要开发10次才能从同样数量的用户那里得到钱。而且从口碑来看, 多个厂商的总数加起来还不到人家一家。 最后是消费者,这是整个产业链的底端,直接决定了产业链的兴荣。
从消费者的需求出发,android平台的优势完全被其混乱局面掩盖,伤害了消费者的利益。大家也知道在国外,IPHONE的价格并不贵,比起 android手机可以说是相当。消费者为什么不选一个更好用的精品?而且这个口碑会不断扩散,android因为角色混乱的问题给消费者留下的不好印象也会扩散。
尽管android的角色A,B,C,D都在为其造势,但是觉得E直接导致的市场效应大家都看在眼里。说到底A,B,C,D都依赖于E,即便再有信心,也逃不掉E的打击。个人觉得android的前景堪忧,关键还是在模式问题上,这是根本,只有解决 了最根本的问题,才能够让整个产业联动起来,蓬勃发展。
以下是个人的一些建议,希望改进android的模式,大家可以多多发表自己的看法和意见:
GOOGLE必须作为行业规范者。而且必须和苹果一样强势,不能再唯唯诺诺,任由角色B和C越俎代庖, 伤害到消费者。GOOGLE既然发起来了android的联盟,就有这个实力和权力去谈判并规范整个行业。不必向苹果那样一棒子打死,但是可以让整个行业井然有序。
硬件问题
硬件规格至少应该分为少许的几类,如按照CPU,RAM,ROM容量,屏等分为手机,平板电脑,大屏电视等类。每一类的硬件规格固定,与之优化的android版本。不符合的平台拒绝提供android版本并不予支持。应用加锁等手段强制。
android版本问题
android的版本升级应该时间固定,有序,并发布开放协议不允许修改系统关键部分。界面可以交由第三方设计 ,但是是通过应用程序 的方式安装在系统上。而不是HTC SENSE之类的修改应用框架 等,避免每次系统升级带来的再开发问题。
android版本管理 :基于支持硬件的分类的android版本通过GMAIL账户自动同步。如HTC HERO的硬件符合规范,则其可以通过GMAIL自动刷到最新版本的ROM,并可以自动安装刷机前的软件,获取联系人等同步信息。GMAIL应该作为云端的账户,能够同步更多东西,这样版本混乱的问题得到解决,民间混乱ROM的问题也就迎刃而解。
android运营网络问题
与运营商绑定的机型,不再以加锁ROM的形式出现,而仅仅是销售渠道和收费模式不同。也就是说从运营商那里买的手机,可以获得补贴,但须与运营商签订合同。但是软件和系统仍是统一标准。
开发者问题
犹如IPHONE和IPAD,开发者因android的规范制定,而只需为有限的规范开发同一款程序即可。做到API兼容。
第三方商店问题
GOOGLE可以完全禁止第三方应用商店,避免混乱。也可以授权第三方商店,第三方必须符合软硬件规范,通过兼容性测试,并向GOOGLE缴纳授权费用。这样以来,第三方的问题从程度上得到了抑制,兼容性和用户体验提高,也使得应用程序总数集中增长,不再分散。
资源 整合
GOOGLE完全有实力整合更多的资源进入到android平台,如亚马逊的电子书,索尼的游戏 等等,与其采用合作分成的模式,让大家来把android这个蛋糕做大做强,而不是让游兵散将去和苹果火拼当炮灰。 我相信苹果的强势侵犯到了整个产业链的利益,所到之处,让其他厂商憎恨。虽然消费者是满意的。所以GOOGLE拉拢大家之力,每个都推出精品对抗苹果是不错的选择。
总结,android平台需要规范化,不能开放到混乱的局面,至少有个开放化规范协议。其次,明确角色分工,发挥各家之长,才能出精品,单打独斗,越俎代庖的不和他玩。不提供支持让它自生自灭。然后是,发挥GOOGLE的优势,云计算, 资源整合入云里面的优势,做到资源丰富,兼容性强。再是,各个角色利益分配问题。 当然最后也是最重要的是,要赢得广泛的消费群体。从低端市场到高端市场,从手机,电子书,到平板电脑。都要有大批的消费者。消费品之间要能够兼容,能够互联互动,物联网,移动互联!!!!
专家认为:
1、Android的混乱是必然。
所有的混乱来源于秩序的不规范,苹果的井然有序主要是由于乔布斯的强权和产业链的严格规范。Android注定要混乱,因为作为Google来说要的不是秩序,不是规范,要的是手机终端的数量,只要手机终端的数量足够多,那就可以卖出足够多的广告,其自身的核心战略得到了保证。所以秩序和规范是其次的东西,不是Google第一要考虑的,那肯定会出现Android的混乱。
2、混乱仍然将长时间持续。
这种混乱可能会长时间持续,主要有几点原因:
a.Google的战略决定。因为其战略是Android的终端数量。
b.Google对整个产业链比较无知。Google是个互联网公司,不是通信产业公司。从Nexous One的销售失败上来看,Google对整个产业链的理解并非我们想象的深刻。
c.Google无法强势。布林和佩奇的骨髓里边充满着对自由和开放向往,充满着对打败强权政治的向往,没有强权政治,就无法设立秩序,这是历史证明的。
3、不要太对Google抱有太大的幻想。
上边也分析了对Google的看法,所以我觉得不能对Google抱有太乐观的想法,Google在移动互联网需要积累的东西还比较多,也许只有吃一堑才能长一智。
4、Android开发者在混乱中求生存。
对于Android开发者来说,最主要的是要学聪明点,不要做政治和别人尝试的牺牲品。机会很多,但是要睁大眼睛,有自己的辨别力才行。
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)