我用过Zend Studio 5.5这个经典版本,后从一直在用Zend Studio7 系列。
Zend Studio公认是最好的PHP开发工具,随着Zend Studio 6/7的发布,Zend Studio也转向Eclipse开发环境,5.5时代的快捷键很多都不能用了,还好6的快捷键基本和Eclipse相同,整理了一下,熟练使用确实能提高不少开发效率。
我们这帮80后的一大特点就是,打字指法凌乱,速度却不慢,IDE追求强大,快捷键却很少用,当然,也有一帮全用记事本、DW编程的家伙。
这里列的快捷键,着实比较方便,不过,我记了N遍也没记住,现在放到桌面上,每天看一遍。
Ctrl+1 快速显示OutLine(不是Eclipse的快速修复哦)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(project,file)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码(笔记本就享受不了了)
Ctrl+*(小键盘) 展开当前类中的所有代码(笔记本就享受不了了)
Alt+/ 代码助手完成一些代码的插入
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变为小写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符
Zend Studio公认是最好的PHP开发工具,随着Zend Studio 6/7的发布,Zend Studio也转向Eclipse开发环境,5.5时代的快捷键很多都不能用了,还好6的快捷键基本和Eclipse相同,整理了一下,熟练使用确实能提高不少开发效率。
我们这帮80后的一大特点就是,打字指法凌乱,速度却不慢,IDE追求强大,快捷键却很少用,当然,也有一帮全用记事本、DW编程的家伙。
这里列的快捷键,着实比较方便,不过,我记了N遍也没记住,现在放到桌面上,每天看一遍。
Ctrl+1 快速显示OutLine(不是Eclipse的快速修复哦)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(project,file)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码(笔记本就享受不了了)
Ctrl+*(小键盘) 展开当前类中的所有代码(笔记本就享受不了了)
Alt+/ 代码助手完成一些代码的插入
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变为小写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符
以前用过1st JavaScript Editor ,但是收费的,现在最新版本3.85,今天发现有个免费版,版本更新4.2的,完全免费,下载包才7m多,真是轻巧啊,大家可以试试,功能不弱,给个下载地址http://www.yaldex.com/Ready/freejse.zip ,今天补上直接下载。(第二个是3.8的xx文件,里面有trojan,有能力的清除一下,胆小的莫下),补充一下:哪位要能把XX文件里的trojan清除掉再发上来就太感谢了,虽然这个trojan不影响正常使用,但总感觉别扭还得调整杀软的设置。
http://www.javaeye.com/topic/313451
http://www.javaeye.com/topic/313451
1 进入:http://www.aptana.com/docs/index.php/Debugger_Error_Page
2 进入:
If you use Firefox 3.0+ browser, see Firefox 3.0/Firebug 1.2 support ASAP Issue for details.
For problems with Firefox 1.5+ browser, see Firefox 1.5+/Aptana Debugger ASAP Issue .
If you use Aptana debugger for Internet Explorer , see some IE debugger troubleshooting tips .
全面兼容:
我们进第一个Firefox3的.
下载:
1. aptanadebugger_1.2.0rc3.xpi (55 kb)
2. firebug-1.2.0b13.xpi (469 kb)
3. test_files.zip (5 kb)
1 安装前两个插件到Firefox中,.
2 在Aptana中新建工程, 把第三个文件test_files.zip解压,放入工程中. 就可以下断点调试了.
你会发现, 你在Aptana中下了断点,在FireFox的fireBug插件中也有同样的数点.
想支持在IE中debug, 那安安装Aptana Studio Pro版本,是要注册的. 而我用的是免费版本,不能用IE debug了.
http://www.javaeye.com/topic/348515
2 进入:
If you use Firefox 3.0+ browser, see Firefox 3.0/Firebug 1.2 support ASAP Issue for details.
For problems with Firefox 1.5+ browser, see Firefox 1.5+/Aptana Debugger ASAP Issue .
If you use Aptana debugger for Internet Explorer , see some IE debugger troubleshooting tips .
全面兼容:
我们进第一个Firefox3的.
下载:
1. aptanadebugger_1.2.0rc3.xpi (55 kb)
2. firebug-1.2.0b13.xpi (469 kb)
3. test_files.zip (5 kb)
1 安装前两个插件到Firefox中,.
2 在Aptana中新建工程, 把第三个文件test_files.zip解压,放入工程中. 就可以下断点调试了.
你会发现, 你在Aptana中下了断点,在FireFox的fireBug插件中也有同样的数点.
想支持在IE中debug, 那安安装Aptana Studio Pro版本,是要注册的. 而我用的是免费版本,不能用IE debug了.
http://www.javaeye.com/topic/348515
一)用vim时,鼠标右键不能粘贴而是进入了visual模式。
方法一:
在普通模式下键入:set mouse-=a【不包括引号)】
方法二:
编辑 ~/.vimrc 文件,加入如下代码:
if has('mouse')
set mouse-=a endif
1
2
方法一每次打开vim时都需要设置一次。
方法二改了配置文件后,问题就解决了。
set mouse=a【这个是用来开启鼠标功能的,a表示所有模式】
---------------------
原文:https://blog.csdn.net/foryouslgme/article/details/52688285
二)
对路由器或以太网交换机进行批量粘贴配置的时候出错,导致正在运行的数据配置错误,不得不对大量的配置逐条修改。
处理方法
出现类似的问题主要是因为在批量粘贴配置的时候,笔记本电脑或调测PC向路由器或以太网交换机发送的命令间隔时间太短造成的。可以修改超级终端、SecureCRT的行输入延迟来调整。
超级终端的调整方法:
菜单 文件—>属性,修改行延迟,建议修改为500毫秒。
SecureCRT的调整方法:
菜单Options—>Global Options,修改Line send delay[在advanced里面的一个选项],建议修改为500毫秒。
通过调整行输入延迟,我们可以在开局的时候通过修改配置模板,然后把修改后的配置在超级终端或SecureCRT进行粘贴,生成最终配置,这样可以大大提高工作效率。
深层分析:
该现象常发生于低端路由器交换机中,其原因并非因为粘贴数据编码错误,具本人调试过大部分网络设备命令均为asic码,及用windows记事本即可将命令写出,粘贴,呈现该错误原因为网络设备cpu编码时处理字符能力问题,将延时调至cpu可完成识别处理状态即可,该问题为一般性硬件问题.
方法一:
在普通模式下键入:set mouse-=a【不包括引号)】
方法二:
编辑 ~/.vimrc 文件,加入如下代码:
if has('mouse')
set mouse-=a endif
1
2
方法一每次打开vim时都需要设置一次。
方法二改了配置文件后,问题就解决了。
set mouse=a【这个是用来开启鼠标功能的,a表示所有模式】
---------------------
原文:https://blog.csdn.net/foryouslgme/article/details/52688285
二)
对路由器或以太网交换机进行批量粘贴配置的时候出错,导致正在运行的数据配置错误,不得不对大量的配置逐条修改。
处理方法
出现类似的问题主要是因为在批量粘贴配置的时候,笔记本电脑或调测PC向路由器或以太网交换机发送的命令间隔时间太短造成的。可以修改超级终端、SecureCRT的行输入延迟来调整。
超级终端的调整方法:
菜单 文件—>属性,修改行延迟,建议修改为500毫秒。
SecureCRT的调整方法:
菜单Options—>Global Options,修改Line send delay[在advanced里面的一个选项],建议修改为500毫秒。
通过调整行输入延迟,我们可以在开局的时候通过修改配置模板,然后把修改后的配置在超级终端或SecureCRT进行粘贴,生成最终配置,这样可以大大提高工作效率。
深层分析:
该现象常发生于低端路由器交换机中,其原因并非因为粘贴数据编码错误,具本人调试过大部分网络设备命令均为asic码,及用windows记事本即可将命令写出,粘贴,呈现该错误原因为网络设备cpu编码时处理字符能力问题,将延时调至cpu可完成识别处理状态即可,该问题为一般性硬件问题.
本部分设定了隐藏,您已回复过了,以下是隐藏的内容公司绝不会告诉你的20大秘密 值得一看很受用
1.入职时的工资高低不重要,只要你努力工作你会得到相应待遇的
我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加的”,特别是当第一次找工作的时候大多数人会相信这些话,但是千万~~别相信。
刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外),而且你入职以后大部分待遇都会跟着你的工资而浮动,工资调整也是按你目前的工资乘于一定的百分比,保险、公积金也跟工资有关系,当你的基本工资低的时候你今后的报酬增长空间也不大。
所以,找工作时千万不要心软,多争取一些基本工资,因为这是你的所有。
我第一次找工作时就是犯了这个错误,当时心软没要求更高的工资,当时觉得基本工资比别人低几百块钱无所谓,但是后来才发现它有一个杠杆作用,尽管以后每年你工资涨幅比别人大,但是工资还是比别人低。
比如你入职时的基本工资为4000,第二年涨幅为20% (一般的企业极少数人能涨20%),那第二年工资为4800; 如果你的同事入职时基本工资为4500,第二年涨幅为10%(一般涨幅),那他第二年工资为4950。
是不是看到差距了? 请记住,入职时工资就是你的全部,一定不能心软。
2.人事部不是你的倾谈对象阅读全文
1.入职时的工资高低不重要,只要你努力工作你会得到相应待遇的
我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加的”,特别是当第一次找工作的时候大多数人会相信这些话,但是千万~~别相信。
刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外),而且你入职以后大部分待遇都会跟着你的工资而浮动,工资调整也是按你目前的工资乘于一定的百分比,保险、公积金也跟工资有关系,当你的基本工资低的时候你今后的报酬增长空间也不大。
所以,找工作时千万不要心软,多争取一些基本工资,因为这是你的所有。
我第一次找工作时就是犯了这个错误,当时心软没要求更高的工资,当时觉得基本工资比别人低几百块钱无所谓,但是后来才发现它有一个杠杆作用,尽管以后每年你工资涨幅比别人大,但是工资还是比别人低。
比如你入职时的基本工资为4000,第二年涨幅为20% (一般的企业极少数人能涨20%),那第二年工资为4800; 如果你的同事入职时基本工资为4500,第二年涨幅为10%(一般涨幅),那他第二年工资为4950。
是不是看到差距了? 请记住,入职时工资就是你的全部,一定不能心软。
2.人事部不是你的倾谈对象阅读全文
.exc_img3{width:400px;height:98px;float:left;background-image:url(/images/exchange_03.jpg); background-repeat:repeat-y; background-position:bottom}
住下对齐。Y重重复!
住下对齐。Y重重复!
<SCRIPT src="resource/jquery-1.2.6.js" type=text/javascript></SCRIPT>
<SCRIPT src="resource/ui.core.js" type=text/javascript></SCRIPT>
<SCRIPT src="resource/ui.dialog.js" type=text/javascript></SCRIPT>
<script type="text/javascript">
function jumppage(){
$('#bloomup').dialog( {modal: true,resizable:false,width:'400px', height:'300px',overlay: { opacity: 0.7, background: 'black' } });
}
function closejumppage(){
$('#bloomup').dialog('close');
}
</script>
<iframe name="iframexq" id="iframexq" src="exchange.php" frameborder="0" scrolling="no" style="width:400px; height:300px"></iframe>
<area shape="rect" coords="168,108,368,147" href="#" onClick="jumppage()"/>
<img src="images/index_03.jpg" border="0" usemap="#Map2"/>
阅读全文
1.用telnet连到远程服务器
可以
telnet mail.test.com 25
或者
telnet mail.test.com smtp
2.跟服务器打招呼
HELO mail.test.com
服务器应该返回
250
如果服务器smtp需要验证,进行第三步,否则到第四步
3.输入
AUTH LOGIN
会一次提示你
334 VXNlcm5hbWU6
和
334 UGFzc3dvcmQ6
后边的内容是提示输入用户名和口令,信息是经过base64编码的
输入的用户名和口令也要经过编码,这里是一个编码、解码的工具
smtp认证通过后会显示
235 2.0.0 Authentication successful
4.写信
输入
MAIL FROM: <juhui@test.com>
和
RCPT TO: <phpbird@test.com>
分别是发自,发往
如果正常都应该返回250
输入
DATA
开始写信
Subject:test mail
test email
.
250 2.0.0 Ok: queued as 93223136C8E
退出
QUIT
Postfix上试用通过。
都是用rcpt to命令,对于抄送和密送的区分问题如下:
实现抄送及密送
在SMTP 命令集中并没有RCPT CC 或RCPT BCC 相关命令, 那要如何来实现抄送和密送功能呢?
在网络上找到这样一句话: “ 所有的接收者协商都通过RCPT TO 命令来实现,如果是BCC ,则协商发送后在对方接收时被删掉信封接收者”, 开始一直不明白这句话是什么意思? 后来通看查看foxmail 的邮件原文发现:
Date: Wed, 6 Jan 2010 12:11:48 +0800
From: "carven_li" < carven_li @smtp.com>
To: "carven" <carven@smtp.com>
Cc: "sam" <sam@smtp.com>,
"yoyo" <yoyo@smtp.com>
BCC: "clara" <clara@tsmtp.com>
Subject: t
X-mailer: Foxmail 5.0 [cn]
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="=====001_Dragon237244850520_====="
才恍然大悟, 所谓的” 协商” 应该就是指发送方在Data 中指定哪些为CC, 哪些为BCC, 默认情况下什么都不写, 只发送第一个RCPT TO 的mail, 其他的都被过滤掉.
可以
telnet mail.test.com 25
或者
telnet mail.test.com smtp
2.跟服务器打招呼
HELO mail.test.com
服务器应该返回
250
如果服务器smtp需要验证,进行第三步,否则到第四步
3.输入
AUTH LOGIN
会一次提示你
334 VXNlcm5hbWU6
和
334 UGFzc3dvcmQ6
后边的内容是提示输入用户名和口令,信息是经过base64编码的
输入的用户名和口令也要经过编码,这里是一个编码、解码的工具
smtp认证通过后会显示
235 2.0.0 Authentication successful
4.写信
输入
MAIL FROM: <juhui@test.com>
和
RCPT TO: <phpbird@test.com>
分别是发自,发往
如果正常都应该返回250
输入
DATA
开始写信
Subject:test mail
test email
.
250 2.0.0 Ok: queued as 93223136C8E
退出
QUIT
Postfix上试用通过。
都是用rcpt to命令,对于抄送和密送的区分问题如下:
实现抄送及密送
在SMTP 命令集中并没有RCPT CC 或RCPT BCC 相关命令, 那要如何来实现抄送和密送功能呢?
在网络上找到这样一句话: “ 所有的接收者协商都通过RCPT TO 命令来实现,如果是BCC ,则协商发送后在对方接收时被删掉信封接收者”, 开始一直不明白这句话是什么意思? 后来通看查看foxmail 的邮件原文发现:
Date: Wed, 6 Jan 2010 12:11:48 +0800
From: "carven_li" < carven_li @smtp.com>
To: "carven" <carven@smtp.com>
Cc: "sam" <sam@smtp.com>,
"yoyo" <yoyo@smtp.com>
BCC: "clara" <clara@tsmtp.com>
Subject: t
X-mailer: Foxmail 5.0 [cn]
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="=====001_Dragon237244850520_====="
才恍然大悟, 所谓的” 协商” 应该就是指发送方在Data 中指定哪些为CC, 哪些为BCC, 默认情况下什么都不写, 只发送第一个RCPT TO 的mail, 其他的都被过滤掉.
使用memchche代替php默认的file来存储session,能够实现更快的速度,而且很容易实现多主机共享session的需求。本文简要介绍一下安装设置的办法
系统环境:FreeBSD6.1 ,apache2.2.3, php5.2.0
1.首先安装memcache,因为是在FreeBSD环境下,所以我们采用最简单的ports方式来安装memcache
cd /usr/ports/databases/memcached/
make install clean
ports会自动寻找源进行下载,然后编译安装
安装好memcache以后,编辑/etc/rc.conf文件,在最后一行加一句memcached_enable="YES"
然后保存退出。memcache会随着开机自动启动,手动启动的命令是:
/usr/local/etc/rc.d/memcached start
好了,现在memcache已经安装并启动完毕了。
2.安装pecl::memcache扩展,这是php的扩展,安装以后可以使用Memcache函数库,php手册上有详细的使用法说明。
cd /usr/ports/databases/pecl-memcache/
make install clean
安装好以后,会自动在/usr/local/etc/php/extension.ini 加上一行 extension=memcache.so
用命令查看一下:
cat /usr/local/etc/php/extensions.ini
如果看见最后一行有 extension=memcache.so
说明已经安装好了,这个时候重新启动一下apache server即可,phpinfo()可以看到memcache扩展的信息。
3.设置session用memcache来存储
编辑php.ini文件,做如下修改
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
当然,也可以在httpd.conf文件中加上,前提是php以模块方式载入,如果是cgi方式无效
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"
重启一下,apache server,好了,写一小段测试代码看看session是否正常吧
系统环境:FreeBSD6.1 ,apache2.2.3, php5.2.0
1.首先安装memcache,因为是在FreeBSD环境下,所以我们采用最简单的ports方式来安装memcache
cd /usr/ports/databases/memcached/
make install clean
ports会自动寻找源进行下载,然后编译安装
安装好memcache以后,编辑/etc/rc.conf文件,在最后一行加一句memcached_enable="YES"
然后保存退出。memcache会随着开机自动启动,手动启动的命令是:
/usr/local/etc/rc.d/memcached start
好了,现在memcache已经安装并启动完毕了。
2.安装pecl::memcache扩展,这是php的扩展,安装以后可以使用Memcache函数库,php手册上有详细的使用法说明。
cd /usr/ports/databases/pecl-memcache/
make install clean
安装好以后,会自动在/usr/local/etc/php/extension.ini 加上一行 extension=memcache.so
用命令查看一下:
cat /usr/local/etc/php/extensions.ini
如果看见最后一行有 extension=memcache.so
说明已经安装好了,这个时候重新启动一下apache server即可,phpinfo()可以看到memcache扩展的信息。
3.设置session用memcache来存储
编辑php.ini文件,做如下修改
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
当然,也可以在httpd.conf文件中加上,前提是php以模块方式载入,如果是cgi方式无效
php_value session.save_handler "memcache"
php_value session.save_path "tcp://127.0.0.1:11211"
重启一下,apache server,好了,写一小段测试代码看看session是否正常吧
1.启动成本低,投资少
2.市场需求量大,人人都需要
3.能够重复购买,易耗用品
4.做商品流通环节,做代理分销商
5.最终可以自动运转,有自动生命力
6.能够杠杆别人的力量,借力使力不费力
7.是否能够接触成功人士
8.是否能够使生活越来越好,实现人生理想
9.能够发挥你的天赋和激情,有属于自己的舞台
10.能不断被别人认同并被别人需要
2.市场需求量大,人人都需要
3.能够重复购买,易耗用品
4.做商品流通环节,做代理分销商
5.最终可以自动运转,有自动生命力
6.能够杠杆别人的力量,借力使力不费力
7.是否能够接触成功人士
8.是否能够使生活越来越好,实现人生理想
9.能够发挥你的天赋和激情,有属于自己的舞台
10.能不断被别人认同并被别人需要
mysql5.X开启日志方法:
修改my.cnf的mysqld部分:
long_query_time = 1 //定义慢查询的时间1表示1秒
--log-slow-queries[=file_name] //记录慢查询到日志文件
--log-queries-not-using-indexes //将没使用索引的sql记录到日志文件
我配置的正确实例情况如下:
Sql语句优化
Sql语句优化工具
·慢日志
如果发现系统慢了,又说不清楚是哪里慢,那么就该用这个工具了。只需要为mysql配置参数,mysql会自己记录下来慢的sql语句。配置很简单,参数文件里配置:
slow_query_log=d:/slow.txt
long_query_time = 2
就可以在d:/slow.txt里找到执行时间超过2秒的语句了,根据这个文件定位问题吧。
·mysqldumpslow.pl
慢日志文件可能会很大,让人去看是很难受的事。这时候我们可以通过mysql自带的工具来分析。这个工具可以格式化慢日志文件,对于只是参数不同的语句会归类类并,比如有两个语句select * from a where id=1 和select * from a where id=2,经过这个工具整理后就只剩下select * from a where id=N,这样读起来就舒服多了。而且这个工具可以实现简单的排序,让我们有的放矢。下面介绍下用法。因为这是个perl脚本,先要安装perl环境。脚本在mysql自带的脚本目录里,我的是在D:\mysql-5.1.30-win32\scripts
先mysqldumpslow –help以下,俺主要用的是
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
-s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的
mysqldumpslow -s c -t 20 slow.txt
mysqldumpslow -s r -t 20 slow.txt
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
mysqldumpslow -t 10 -s t -g “left join” slow.txt
这个是按照时间返回前10条里面含有左连接的sql语句。
修改my.cnf的mysqld部分:
long_query_time = 1 //定义慢查询的时间1表示1秒
--log-slow-queries[=file_name] //记录慢查询到日志文件
--log-queries-not-using-indexes //将没使用索引的sql记录到日志文件
我配置的正确实例情况如下:
Sql语句优化
Sql语句优化工具
·慢日志
如果发现系统慢了,又说不清楚是哪里慢,那么就该用这个工具了。只需要为mysql配置参数,mysql会自己记录下来慢的sql语句。配置很简单,参数文件里配置:
slow_query_log=d:/slow.txt
long_query_time = 2
就可以在d:/slow.txt里找到执行时间超过2秒的语句了,根据这个文件定位问题吧。
·mysqldumpslow.pl
慢日志文件可能会很大,让人去看是很难受的事。这时候我们可以通过mysql自带的工具来分析。这个工具可以格式化慢日志文件,对于只是参数不同的语句会归类类并,比如有两个语句select * from a where id=1 和select * from a where id=2,经过这个工具整理后就只剩下select * from a where id=N,这样读起来就舒服多了。而且这个工具可以实现简单的排序,让我们有的放矢。下面介绍下用法。因为这是个perl脚本,先要安装perl环境。脚本在mysql自带的脚本目录里,我的是在D:\mysql-5.1.30-win32\scripts
先mysqldumpslow –help以下,俺主要用的是
-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
-t NUM just show the top n queries
-g PATTERN grep: only consider stmts that include this string
-s,是order的顺序,说明写的不够详细,俺用下来,包括看了代码,主要有
c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序,前面加了a的时倒叙
-t,是top n的意思,即为返回前面多少条的数据
-g,后边可以写一个正则匹配模式,大小写不敏感的
mysqldumpslow -s c -t 20 slow.txt
mysqldumpslow -s r -t 20 slow.txt
上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。
mysqldumpslow -t 10 -s t -g “left join” slow.txt
这个是按照时间返回前10条里面含有左连接的sql语句。
相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。
1、TCP连接
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)
2、HTTP连接
HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
3、SOCKET原理
3.1套接字(socket)概念
套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
3.2 建立socket连接
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
4、SOCKET连接与TCP连接
创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
5、Socket连接与HTTP连接
由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。
而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
该贴来自http://hi.baidu.com/%D2%B9%D1%A9%B3%E6/blog/item/d6a72d2bbf467cf2e7cd406d.html
1、TCP连接
手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)
2、HTTP连接
HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。
2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。
3、SOCKET原理
3.1套接字(socket)概念
套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
3.2 建立socket连接
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
4、SOCKET连接与TCP连接
创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。
5、Socket连接与HTTP连接
由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。
而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。
该贴来自http://hi.baidu.com/%D2%B9%D1%A9%B3%E6/blog/item/d6a72d2bbf467cf2e7cd406d.html
功能强大的jquery提示信息插件jquery.poshytip.js:
http://www.sharejs.com/code/jquery/plugin/poshytip-1.0/demo/index.html
<script type="text/javascript" src="/js/jquery.validate.min.js"></script>
<link href="/css/colorbox.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/jquery.colorbox-min.js"></script>
<link type="text/css" href="/css/ui.datepicker.css" rel="stylesheet" />
<script type="text/javascript" language="javascript" src="/js/jquery.ui.datepicker-zh-CN.js"></script>
DownLoad较常用的插件:
真正可用的文件上传插件
找了很多才发现这个相当不错插件:
http://www.jcupload.com/documentation/ http://demo.swfupload.org/v220/index.htm
强大的js画图功能
http://draw2d.org/draw2d/files/demo/YahooUI_integration/index.html
jquery实现右键菜单:
http://www.trendskitchens.co.nz/jquery/contextmenu/
jquery 消息插件--仿QQ消息弹出提醒:
http://www.cnblogs.com/qiantuwuliang/archive/2009/06/08/1498826.html
query仿照开心网的好友查找:
http://itlea.com/archiver/?tid-290982.html
http://www.playgoogle.com/demo/friendsuggest/default.html
一好很漂亮的jquery上传插件:
http://www.jqueryajax.com/jquery979
jQuery:Scrolltop滑动插件推荐(修正注释版)
http://www.ihiro.org/jquery-scrolltop-plugins
jquery插件 scroll follow,层随着窗口滚动
http://kitchen.net-perspective.com/open-source/scroll-follow/
jQuery基础---filter()和find()
http://www.cnblogs.com/qiantuwuliang/archive/2009/10/18/1585682.html
37个更加出色的jQuery插件:
http://paranimage.com/37-plug-ins-even-more-outstanding-jquery/
从零开始学习 jQuery 事件与事件对象
http://www.xueit.com/html/2009-05/33_2020_00.html
jQuery Flash Plugin:
能判断fash是否加载完毕和自动生成flash的嵌入代码:
参考:http://hi.baidu.com/otherrrr/blog/item/b65bd016461f1e1d972b431a.html
下载:http://jquery.lukelutman.com/plugins/flash/
jquery上传头像的插件(感觉不错):
http://www.cnblogs.com/xuanye/archive/2009/04/02/1428202.html
09年插件总结:
http://blog.csdn.net/yuhaibao324/archive/2009/12/19/5037288.aspx
jQuery心跳包插件:
http://www.oschina.net/p/jheartbeat
jQuery UI组件 jQuery UI:
http://www.oschina.net/p/jquery+ui
suggest 技术
http://www.webwoo.net/jquery/200902/15-33819.html
suggest 技术,实际上就是大家看到的 google 在搜索的时候当您输入时有一个自动提示框
下面我给大家介绍一个jquery suggest插件
用起来很简单
只需要加一句
$("#suggest").suggest("demo.php",{
onSelect: function() {alert("You selected: " this.value)}});
});
就可以了
演示
http://www.cnjquery.com/demo/suggest/demo.html
我经常用到的:
阅读全文
http://www.sharejs.com/code/jquery/plugin/poshytip-1.0/demo/index.html
<script type="text/javascript" src="/js/jquery.validate.min.js"></script>
<link href="/css/colorbox.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/js/jquery.colorbox-min.js"></script>
<link type="text/css" href="/css/ui.datepicker.css" rel="stylesheet" />
<script type="text/javascript" language="javascript" src="/js/jquery.ui.datepicker-zh-CN.js"></script>
DownLoad较常用的插件:
下载文件
真正可用的文件上传插件
找了很多才发现这个相当不错插件:
http://www.jcupload.com/documentation/ http://demo.swfupload.org/v220/index.htm
强大的js画图功能
http://draw2d.org/draw2d/files/demo/YahooUI_integration/index.html
jquery实现右键菜单:
http://www.trendskitchens.co.nz/jquery/contextmenu/
jquery 消息插件--仿QQ消息弹出提醒:
http://www.cnblogs.com/qiantuwuliang/archive/2009/06/08/1498826.html
query仿照开心网的好友查找:
http://itlea.com/archiver/?tid-290982.html
http://www.playgoogle.com/demo/friendsuggest/default.html
一好很漂亮的jquery上传插件:
http://www.jqueryajax.com/jquery979
jQuery:Scrolltop滑动插件推荐(修正注释版)
http://www.ihiro.org/jquery-scrolltop-plugins
jquery插件 scroll follow,层随着窗口滚动
http://kitchen.net-perspective.com/open-source/scroll-follow/
jQuery基础---filter()和find()
http://www.cnblogs.com/qiantuwuliang/archive/2009/10/18/1585682.html
37个更加出色的jQuery插件:
http://paranimage.com/37-plug-ins-even-more-outstanding-jquery/
从零开始学习 jQuery 事件与事件对象
http://www.xueit.com/html/2009-05/33_2020_00.html
jQuery Flash Plugin:
能判断fash是否加载完毕和自动生成flash的嵌入代码:
参考:http://hi.baidu.com/otherrrr/blog/item/b65bd016461f1e1d972b431a.html
下载:http://jquery.lukelutman.com/plugins/flash/
jquery上传头像的插件(感觉不错):
http://www.cnblogs.com/xuanye/archive/2009/04/02/1428202.html
09年插件总结:
http://blog.csdn.net/yuhaibao324/archive/2009/12/19/5037288.aspx
jQuery心跳包插件:
http://www.oschina.net/p/jheartbeat
jQuery UI组件 jQuery UI:
http://www.oschina.net/p/jquery+ui
suggest 技术
http://www.webwoo.net/jquery/200902/15-33819.html
suggest 技术,实际上就是大家看到的 google 在搜索的时候当您输入时有一个自动提示框
下面我给大家介绍一个jquery suggest插件
用起来很简单
只需要加一句
$("#suggest").suggest("demo.php",{
onSelect: function() {alert("You selected: " this.value)}});
});
就可以了
演示
http://www.cnjquery.com/demo/suggest/demo.html
我经常用到的:
阅读全文
Flot是Ole Laursen开发的基于JQuery的纯JavaScript实现的绘图库,Flot使用起来非常简单,绘图效果相当绚丽,而且还支持一些图片的操作功能,例如图片的缩放。可以看一下Flot的demo:
http://ajaxian.com/archives/plotting-in-jquery
绘制上面的图形所编写的JS也非常简单易读:
# <script id="source" language="javascript" type="text/javascript">
# $(function () {
# var d1 = [];
# for (var i = 0; i < 14; i += 0.5)
# d1.push([i, Math.sin(i)]);
#
# var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
#
# var d3 = [];
# for (var i = 0; i < 14; i += 0.5)
# d3.push([i, Math.cos(i)]);
#
# var d4 = [];
# for (var i = 0; i < 14; i += 0.5)
# d4.push([i, Math.sqrt(i * 10)]);
#
# var d5 = [];
# for (var i = 0; i < 14; i += 0.5)
# d5.push([i, Math.sqrt(i)]);
#
# $.plot($("#placeholder"), [
# {
# data: d1,
# lines: { show: true, fill: true }
# },
# {
# data: d2,
# bars: { show: true }
# },
# {
# data: d3,
# points: { show: true }
# },
# {
# data: d4,
# lines: { show: true }
# },
# {
# data: d5,
# lines: { show: true },
# points: { show: true }
# }
# ]);
# });
# </script>
http://code.google.com/p/flot/
http://ajaxian.com/archives/plotting-in-jquery
绘制上面的图形所编写的JS也非常简单易读:
# <script id="source" language="javascript" type="text/javascript">
# $(function () {
# var d1 = [];
# for (var i = 0; i < 14; i += 0.5)
# d1.push([i, Math.sin(i)]);
#
# var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
#
# var d3 = [];
# for (var i = 0; i < 14; i += 0.5)
# d3.push([i, Math.cos(i)]);
#
# var d4 = [];
# for (var i = 0; i < 14; i += 0.5)
# d4.push([i, Math.sqrt(i * 10)]);
#
# var d5 = [];
# for (var i = 0; i < 14; i += 0.5)
# d5.push([i, Math.sqrt(i)]);
#
# $.plot($("#placeholder"), [
# {
# data: d1,
# lines: { show: true, fill: true }
# },
# {
# data: d2,
# bars: { show: true }
# },
# {
# data: d3,
# points: { show: true }
# },
# {
# data: d4,
# lines: { show: true }
# },
# {
# data: d5,
# lines: { show: true },
# points: { show: true }
# }
# ]);
# });
# </script>
http://code.google.com/p/flot/
我试了,在expose_event函数中放置绘图函数,此函数以一定的时间间隔画不同的曲线。
结果,只有将窗口拖到屏幕的边缘(将窗口画图区隐藏起来),再拖出来,这样画图区的曲线才有变化。
然到,expose_evnet函数只有在这种情况下才能被触发?如果我想实时显示,该怎么办呢?
参考 gtk-demo 里面的 Pixbufs
gtk-demo 装了gtk开发包的应该就代了吧?
$ gtk-demo
结果,只有将窗口拖到屏幕的边缘(将窗口画图区隐藏起来),再拖出来,这样画图区的曲线才有变化。
然到,expose_evnet函数只有在这种情况下才能被触发?如果我想实时显示,该怎么办呢?
参考 gtk-demo 里面的 Pixbufs
gtk-demo 装了gtk开发包的应该就代了吧?
$ gtk-demo
text-decoration:none
css:
a:link{text-decoration:none;color:#fff}
<style type="text/css">
a:link{text-decoration:none;color:#515151}
</style>
引申:
--------------------------------------------------------------------
.header a:link{text-decoration:none;color:#fff}
<span class=header><a href=#>MM</a></span>
这个用来表示超链接的颜色
text-decoration:none;表示没有下划线
color:#ffffff表示链接颜色
这个只表示页面上链接的颜色
其他的还需要使用
a:hover,a:visited等来表示鼠标经过链接的样式和链接被访问以后的样式。
直接在<a href 里去掉下划线的方法:(注意单双引号)
$("#"+logindiv).html('您好,<a style="text-decoration:none" href="javascript:XXXX();">[ 登录 ] </a>');
$("#"+logindiv).html("欢迎您,"+ data.nick+ "<a style='text-decoration:none' href=javascript:CCCC({url:'/'});> [ 注销 ]</a>");
Demo,涉及到软文颜色:
CSS:
a:link {text-decoration:none;}
a:visited {text-decoration:none;}
a:hover {text-decoration:none;}
a:active {text-decoration:none;}
<a href="XXX.php"><span style="color:#b08a68; text-decoration:none;">无极:</span><span style="color:#975c0d ;text-decoration:none;">6月3日无极战个痛快!</span></a>
即将推出的Atom 330处理器测试分数曝光
Asus EEE PC 1000H STOCK (1GB Ram, 80GB Hard Drive, GMA 950, Atom 1.6Ghz)
Windows Vista Ultimate SP1 with all updates installed.
采用WIndows Vista Ultimate SP1并更新所有补丁
For the test, I got rid of all unnecessary background apps, and disabled Aero and Dreamscene.
测试关闭所有无用的后台程序,并关闭Aero和Dreamscene效果
The Test was run by Sandra 2009. The higher the values, the better.
测试采用Sandra 2009软件
Processor Arithmetic Test(处理器运算测试)
This test determines how the CPU handles arithmetic and floating point instructions.
测试CPU的整数、浮点运算
Intel Atom N270 1.6Ghz - ALU: 3862 MIPS iSSE3: 3280 MFLOPS
Intel Atom 330 1.6GHz Dual Core – ALU: 8032 MIPS iSSE3: 6724 MFLOPS
Intel Core 2 Duo U7700 1.3GHz – ALU: 12105 MIPS iSSE3: 8423 MFLOPS
Processor Multimedia(多媒体测试)
This test shows how the CPU can handle multimedia instructions and data
测试多媒体数据的处理
Intel Atom N270 1.6GHz – 8291 kpixels/s
Intel Atom 330 1.6GHz Dual Core – 16920 kpixels/s
Intel Core 2 Duo U7700 1.3GHz – 24742 kpixels/s
Memory Bandwidth(内存带宽测试)
This test reveals the speed of the CPU’s memory cache
测试内存,启用CPU内存缓存
Intel Atom N270 1.6GHz – 3.54 GB/s
Intel Atom 330 1.6GHz Dual Core – 7.18 GB/s
Intel Core 2 Duo U7700 1.3GHz – 9.53 GB/s
Hard Drive Performance(硬盘测试)
This shows how fast the Hard Drive can read and write data. I did this to see how fast the stock hard drive is on EEE PC 1000H.
The hard drive is a ST980811AS 80GB (SATA150, 2.5″, NCQ, 8MB Cache, 5400rpm, 16ms Random Access Time)
Read – 32.84 MB/s
Write – 29.78 MB/s
Asus EEE PC 1000H STOCK (1GB Ram, 80GB Hard Drive, GMA 950, Atom 1.6Ghz)
Windows Vista Ultimate SP1 with all updates installed.
采用WIndows Vista Ultimate SP1并更新所有补丁
For the test, I got rid of all unnecessary background apps, and disabled Aero and Dreamscene.
测试关闭所有无用的后台程序,并关闭Aero和Dreamscene效果
The Test was run by Sandra 2009. The higher the values, the better.
测试采用Sandra 2009软件
Processor Arithmetic Test(处理器运算测试)
This test determines how the CPU handles arithmetic and floating point instructions.
测试CPU的整数、浮点运算
Intel Atom N270 1.6Ghz - ALU: 3862 MIPS iSSE3: 3280 MFLOPS
Intel Atom 330 1.6GHz Dual Core – ALU: 8032 MIPS iSSE3: 6724 MFLOPS
Intel Core 2 Duo U7700 1.3GHz – ALU: 12105 MIPS iSSE3: 8423 MFLOPS
Processor Multimedia(多媒体测试)
This test shows how the CPU can handle multimedia instructions and data
测试多媒体数据的处理
Intel Atom N270 1.6GHz – 8291 kpixels/s
Intel Atom 330 1.6GHz Dual Core – 16920 kpixels/s
Intel Core 2 Duo U7700 1.3GHz – 24742 kpixels/s
Memory Bandwidth(内存带宽测试)
This test reveals the speed of the CPU’s memory cache
测试内存,启用CPU内存缓存
Intel Atom N270 1.6GHz – 3.54 GB/s
Intel Atom 330 1.6GHz Dual Core – 7.18 GB/s
Intel Core 2 Duo U7700 1.3GHz – 9.53 GB/s
Hard Drive Performance(硬盘测试)
This shows how fast the Hard Drive can read and write data. I did this to see how fast the stock hard drive is on EEE PC 1000H.
The hard drive is a ST980811AS 80GB (SATA150, 2.5″, NCQ, 8MB Cache, 5400rpm, 16ms Random Access Time)
Read – 32.84 MB/s
Write – 29.78 MB/s