11月10
因为Array没有indexOf方法,这样在一个数组中查找某个元素的索引时比较麻烦,为了调用方便,于是通过prototype原型扩展了Array.prototype.indexOf(),这样用起来就比较方便了。
Array.prototype.indexOf = function(item) {
for (var i = 0; i < this.length; i++) {
if (this[i] == item)
return i;
}
return -1;
}
用的时候直接
var arr=[1,2,3,4,5];
var index=arr.indexOf(1); //index==0
扩展了以后,用起来很爽很方便,一片和谐景象,但是某次是遍历数组元素的时候,使用for..in..循环,引发了其他的问题,打破了这个和谐的氛围。
var a=["张飞","关羽","刘备","吕布"];
for(var p in a){
document.write(p+"="+a[p]+"<br/>");
}
Array.prototype.indexOf = function(item) {
for (var i = 0; i < this.length; i++) {
if (this[i] == item)
return i;
}
return -1;
}
用的时候直接
var arr=[1,2,3,4,5];
var index=arr.indexOf(1); //index==0
扩展了以后,用起来很爽很方便,一片和谐景象,但是某次是遍历数组元素的时候,使用for..in..循环,引发了其他的问题,打破了这个和谐的氛围。
var a=["张飞","关羽","刘备","吕布"];
for(var p in a){
document.write(p+"="+a[p]+"<br/>");
}
11月8
由于某些情况之前重置过IE浏览器,后来出现了这样的状况,每次打开ie浏览器都不是自己设定的主页,出现了Settings were not able to be saved successfully.
主要规为下面两个问题:
1.设置了主页的,可是在启动浏览器的时候出来的并不是设置的主页,而是"自定义您的设置"界面;
2.既然出来"自定义您的设置"界面设置, 就设置了,点击"保存设置",网页左下脚提示"已完毕,但网页上有错误",并在网页中提示"Settings were not able to be saved successfully"
Internet Explorer
主要规为下面两个问题:
1.设置了主页的,可是在启动浏览器的时候出来的并不是设置的主页,而是"自定义您的设置"界面;
2.既然出来"自定义您的设置"界面设置, 就设置了,点击"保存设置",网页左下脚提示"已完毕,但网页上有错误",并在网页中提示"Settings were not able to be saved successfully"
Internet Explorer
11月7
最近有很多朋友在上网时,发现IE不能打开新的窗口,用鼠标左键点击超链接没有任何反应,用鼠标右键点击超键接,在弹出的快捷菜单中选择“在新窗口中打开”也没有任何反应。这时重装IE一般能解决问题,但实际不必这么麻烦(除非万不得以),猪头给大家介绍几种简单的修复方法并总结一些常见修复误区。IE新建窗口模块被破坏所致,我们可以使用Regsvr32命令重新注册几个动态链接文件。
点击:开始---运行---重新注册(输入)以下DLL文件。(一个一个依次注册)
regsvr32 Actxprxy.dll
regsvr32 Shdocvw.dll
重启系统,不行再添加以下的DLL文件。
regsvr32 Mshtml.dll
regsvr32 Urlmon.dll
regsvr32 Msjava.dll
regsvr32 Browseui.dll
regsvr32 Oleaut32.dll
regsvr32 Shell32.dll
大家试试看有啥子问题可以找我哈。blog上有我的联系方式。
点击:开始---运行---重新注册(输入)以下DLL文件。(一个一个依次注册)
regsvr32 Actxprxy.dll
regsvr32 Shdocvw.dll
重启系统,不行再添加以下的DLL文件。
regsvr32 Mshtml.dll
regsvr32 Urlmon.dll
regsvr32 Msjava.dll
regsvr32 Browseui.dll
regsvr32 Oleaut32.dll
regsvr32 Shell32.dll
大家试试看有啥子问题可以找我哈。blog上有我的联系方式。
11月6
image/bmp BMP
image/gif GIF
image/jpeg JPEG
image/tiff TIFF
image/x-dcx DCX
image/x-pcx PCX
text/html HTML
text/plain TXT
text/xml XML
application/afp AFP
application/pdf PDF
application/rtf RTF
application/msword MSWORD
application/vnd.ms-excel MSEXCEL
application/vnd.ms-powerpoint MSPOWERPOINT
application/wordperfect5.1 WORDPERFECT
application/vnd.lotus-wordpro WORDPRO
image/gif GIF
image/jpeg JPEG
image/tiff TIFF
image/x-dcx DCX
image/x-pcx PCX
text/html HTML
text/plain TXT
text/xml XML
application/afp AFP
application/pdf PDF
application/rtf RTF
application/msword MSWORD
application/vnd.ms-excel MSEXCEL
application/vnd.ms-powerpoint MSPOWERPOINT
application/wordperfect5.1 WORDPERFECT
application/vnd.lotus-wordpro WORDPRO
11月6
前几天在书上看的,实验了一下,结果还不错,收藏下来:
package com;
import java.util.*;
import net.sf.json.JSONObject;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class ExtHelper {
public static String getXmlFormList(long recordTotal,List beanList){
Total total = new Total(); //保存记录总数
total.setResults(recordTotal); //设置记录总数到 total对象
List results = new ArrayList(); //创建临时的 List 对象 results
results.add(total); // 添加对象
results.addAll(beanList); // 追加对象
XStream sm = new XStream(new DomDriver()); //创建Xstream对象
for(int i=0;i<results.size();i++){
Class c = results.get(i).getClass();
String b = c.getName();
String[] temp = b.split("\\.");
sm.alias(temp[temp.length-1],c);
}
String xml = "<?xml version='1.0' encoding='UTF-8'?>"+sm.toXML(results);
return xml;
}
package com;
import java.util.*;
import net.sf.json.JSONObject;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class ExtHelper {
public static String getXmlFormList(long recordTotal,List beanList){
Total total = new Total(); //保存记录总数
total.setResults(recordTotal); //设置记录总数到 total对象
List results = new ArrayList(); //创建临时的 List 对象 results
results.add(total); // 添加对象
results.addAll(beanList); // 追加对象
XStream sm = new XStream(new DomDriver()); //创建Xstream对象
for(int i=0;i<results.size();i++){
Class c = results.get(i).getClass();
String b = c.getName();
String[] temp = b.split("\\.");
sm.alias(temp[temp.length-1],c);
}
String xml = "<?xml version='1.0' encoding='UTF-8'?>"+sm.toXML(results);
return xml;
}
11月6
自己测试了一下,支持GOOGLE,IE,FF,小巧精致的提示框。大家可以美化美化下就更完美了。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>页面右下角弹出提示信息,类QQ右下角新闻--Inghot</title>
<style type="text/css">
* {margin:0px;padding:0px;}
html,body {height:100%;}
body {font-size:14px; line-height:24px;}
#tip {position: absolute;right: 0px;bottom: 0px;height: 0px;width: 180px;border: 1px solid #CCCCCC;background-color: #eeeeee;padding: 1px;overflow:hidden;display:none;font-size:12px;z-index:10;}
#tip p {padding:6px;}
#tip h1,#detail h1 {font-size:14px;height:25px;line-height:25px;background-color:#0066CC;color:#FFFFFF;padding:0px 3px 0px 3px;}
#tip h1 a,#detail h1 a {float:right;text-decoration:none;color:#FFFFFF;}
#shadow {position:absolute;width:100%;height:100%;background:#CCCCCC;-moz-opacity:0.5;filter:Alpha(Opacity=50);opacity: 0.8;z-index:11;display:none;overflow:hidden;}
#detail {width:500px;height:200px;border:3px double #ccc;background-color:#FFFFFF;position:absolute;z-index:30;display:none;left:30%;top:30%}
</style>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>页面右下角弹出提示信息,类QQ右下角新闻--Inghot</title>
<style type="text/css">
* {margin:0px;padding:0px;}
html,body {height:100%;}
body {font-size:14px; line-height:24px;}
#tip {position: absolute;right: 0px;bottom: 0px;height: 0px;width: 180px;border: 1px solid #CCCCCC;background-color: #eeeeee;padding: 1px;overflow:hidden;display:none;font-size:12px;z-index:10;}
#tip p {padding:6px;}
#tip h1,#detail h1 {font-size:14px;height:25px;line-height:25px;background-color:#0066CC;color:#FFFFFF;padding:0px 3px 0px 3px;}
#tip h1 a,#detail h1 a {float:right;text-decoration:none;color:#FFFFFF;}
#shadow {position:absolute;width:100%;height:100%;background:#CCCCCC;-moz-opacity:0.5;filter:Alpha(Opacity=50);opacity: 0.8;z-index:11;display:none;overflow:hidden;}
#detail {width:500px;height:200px;border:3px double #ccc;background-color:#FFFFFF;position:absolute;z-index:30;display:none;left:30%;top:30%}
</style>
11月6
虽然希望在自己的博客写一些纯技术性的文章,但作为一名技术人员,我总是对未来的前景感到一阵阵悲哀。有感于对这个投票贴的名字,发表一点自身的感慨。
做为技术人员,大家都觉得工资高,工作稳定,还能学到很多的东西。是大部份走出校门或性格内向,或希望过平静生活的人的必然选择。其实,你们有没有问过自己,这条路到底走对了吗?
一个刚毕业的大学生,从事销售和从事技术两种不同的工作,可能工资的差距会达到数倍之远。对于初出校门的人来说,不无一种极端的诱惑力。刚毕业的年青人,当然会果断的选择技术之路。
两年后,我们再看看,由于经验的积累,做业务的积累了部份客户资源,做技术的积累了好的经验,在各自的领域内都大展开了手脚,收入也基本接近了。
再以后呢,技术之路越来越难走,毕竟做技术需要的大量的时间和精力,否则就跟不上现在时代的技术更新了,做业务的呢,客户群越来越大,经验越来越丰富,谁的收入会更高?
两种不同的职业,它们有着各自不同的特点,技术行业是个撑不死,饱不了的地方,而销售行业则是没有尽头的发展之路。
过了三十岁,大家会选择什么呢,结婚、生子,人生的一条老路,做技术的大多都成为了技术部门的负责人,职位不错;做销售的呢?可能还是个业务员,毕竟做大量的业务都集中在少数人手里。古往今来,财富的集中是如此的相似!但是观察两个职业成功人士的比较,是不是相差太远了?
学到死,做到死、发不了财的技术,有什么值得人留恋的!
到了三十岁,你还有自信面对繁重的工作吗?你有刚出社会的人的活力吗?你能和他们比工作时间,玩命地在老板面前表现吗?你能丢下妻儿出差一、两个月吗?能被小你十来岁的小孩命令来命令去吗?
我不能。。。。。。
有人会说,我有了技术!
做为技术人员,大家都觉得工资高,工作稳定,还能学到很多的东西。是大部份走出校门或性格内向,或希望过平静生活的人的必然选择。其实,你们有没有问过自己,这条路到底走对了吗?
一个刚毕业的大学生,从事销售和从事技术两种不同的工作,可能工资的差距会达到数倍之远。对于初出校门的人来说,不无一种极端的诱惑力。刚毕业的年青人,当然会果断的选择技术之路。
两年后,我们再看看,由于经验的积累,做业务的积累了部份客户资源,做技术的积累了好的经验,在各自的领域内都大展开了手脚,收入也基本接近了。
再以后呢,技术之路越来越难走,毕竟做技术需要的大量的时间和精力,否则就跟不上现在时代的技术更新了,做业务的呢,客户群越来越大,经验越来越丰富,谁的收入会更高?
两种不同的职业,它们有着各自不同的特点,技术行业是个撑不死,饱不了的地方,而销售行业则是没有尽头的发展之路。
过了三十岁,大家会选择什么呢,结婚、生子,人生的一条老路,做技术的大多都成为了技术部门的负责人,职位不错;做销售的呢?可能还是个业务员,毕竟做大量的业务都集中在少数人手里。古往今来,财富的集中是如此的相似!但是观察两个职业成功人士的比较,是不是相差太远了?
学到死,做到死、发不了财的技术,有什么值得人留恋的!
到了三十岁,你还有自信面对繁重的工作吗?你有刚出社会的人的活力吗?你能和他们比工作时间,玩命地在老板面前表现吗?你能丢下妻儿出差一、两个月吗?能被小你十来岁的小孩命令来命令去吗?
我不能。。。。。。
有人会说,我有了技术!
11月6
在最初寻找编程工作的时候,我并没有意识到在一家非软件公司的IT部门工作和在一家软件公司的研发或者产品开发部门工作有什么不同。
对于我来说,都是工作而已。我会看看公司的口碑,使用的技术或者额外津贴,试着权衡一下会不会有很多机会。事实上,这两种工作截然不同,人们很可能会在其中的某一个快乐并更成功。
IT部门的编程工作
在IT部门的屋檐下工作,你的职责便是公司的内部网络、其他部门使用的应用程序还有公司网站和应用程序。这听起来可能平淡无奇,但在某些层面上来说,这些工作都是极具挑战。你可能会遇到比在一家小型软件公司更大的挑战。其实,取决于公司态度的不同(自己开发还是外部购买),你可能会有机会来做更多不同的项目。
别人会把你们看成是一个“消费”部门——也就是说你们不为公司赚钱,只是“消费”。这样,工作的重点总是会转移到如何节约开支。用来衡量成功与否的标准就是你节约了多少钱(相比体力劳动或购买现成的解决方案等)。偶尔,你可能有机会帮助公司赚钱,比如建立一个电子商务网站。
当评定工资和额外津贴的时候,负责预算的人可能没有编程背景,他会尽可能把预算压低。同时,他们很可能会把人看成可替换的资源。
对于我来说,都是工作而已。我会看看公司的口碑,使用的技术或者额外津贴,试着权衡一下会不会有很多机会。事实上,这两种工作截然不同,人们很可能会在其中的某一个快乐并更成功。
IT部门的编程工作
在IT部门的屋檐下工作,你的职责便是公司的内部网络、其他部门使用的应用程序还有公司网站和应用程序。这听起来可能平淡无奇,但在某些层面上来说,这些工作都是极具挑战。你可能会遇到比在一家小型软件公司更大的挑战。其实,取决于公司态度的不同(自己开发还是外部购买),你可能会有机会来做更多不同的项目。
别人会把你们看成是一个“消费”部门——也就是说你们不为公司赚钱,只是“消费”。这样,工作的重点总是会转移到如何节约开支。用来衡量成功与否的标准就是你节约了多少钱(相比体力劳动或购买现成的解决方案等)。偶尔,你可能有机会帮助公司赚钱,比如建立一个电子商务网站。
当评定工资和额外津贴的时候,负责预算的人可能没有编程背景,他会尽可能把预算压低。同时,他们很可能会把人看成可替换的资源。
11月3
钩子是WINDOWS中消息处理机制的一个要点,通过安装各种钩子,应用程序能够设置相应的子例程来监视系统里的消息传递以及在这些消息到达目标窗口程序之前处理它们。钩子的种类很多,每种钩子可以截获并处理相应的消息,如键盘钩子可以截获键盘消息,鼠标钩子可以截获鼠标消息,外壳钩子可以截获启动和关闭应用程序的消息,日志钩子可以监视和记录输入事件。钩子分为线程专用钩子和全局钩子,线程专用钩子只监视指定的线程,要监视系统中的所有线程,必须用到全局钩子。对于全局钩子,钩子函数必须包含在独立的动态链接库(DLL)中,这样才能被各种相关联的应用程序调用。在WINDOWS中,日志钩子是个很特别的钩子,它只有全局钩子一种,是键盘鼠标等输入设备的消息在系统消息队列被取出时发生的,而且系统中只能存在一个这样的日志钩子,更重要是,它不必用在动态链接库中,这样可以省却了为安装一个全局钩子而建立一个动态链接库的麻烦。利用日志钩子,我们可以监视各种输入事件,下面的示例可以用来记录键盘的输入,当有按键发生时,自动记录按键动作的日期和时间以及当前激活的窗口名称。本示例在中文WIN98,Borland C++ Builder4中编译通过。
---- 1.新建一个工程,在窗体Form1中放置两个按钮Button1和Button2, CAPTION分别为“安装日志钩子”和“卸载日志钩子”。
---- 2. 定义如下全局变量:
HHOOK g_hLogHook=NULL; //钩子变量
HWND g_hLastFocus=NULL;
//记录上一次得到焦点的窗口句柄
const int KeyPressMask=0x80000000; //键盘掩码常量
char g_PrvChar; //保存上一次按键值
---- 1.新建一个工程,在窗体Form1中放置两个按钮Button1和Button2, CAPTION分别为“安装日志钩子”和“卸载日志钩子”。
---- 2. 定义如下全局变量:
HHOOK g_hLogHook=NULL; //钩子变量
HWND g_hLastFocus=NULL;
//记录上一次得到焦点的窗口句柄
const int KeyPressMask=0x80000000; //键盘掩码常量
char g_PrvChar; //保存上一次按键值
11月2
内存溢出就是你要求分配的内存超出了系统能给你的,系统不能满足需求,于是产生溢出。
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出.
以发生的方式来分类,内存泄漏可以分为4类:
1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。一个盘子用尽各种方法只能装4个果子,你装了5个,结果掉倒地上不能吃了。这就是溢出!比方说栈,栈满时再做进栈必定产生空间溢出,叫上溢,栈空时再做退栈也产生空间溢出,称为下溢。就是分配的内存不足以放下数据项序列,称为内存溢出.
以发生的方式来分类,内存泄漏可以分为4类:
1. 常发性内存泄漏。发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
2. 偶发性内存泄漏。发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
3. 一次性内存泄漏。发生内存泄漏的代码只会被执行一次,或者由于算法上的缺陷,导致总会有一块仅且一块内存发生泄漏。比如,在类的构造函数中分配内存,在析构函数中却没有释放该内存,所以内存泄漏只会发生一次。







