2010年07月26日
by 江小邪
0 comments
下面是我对一部分缺陷的看法:
为Ajax而Ajax(Using Ajax for the sake of Ajax.)
很同意这点,当一个技术本身的生存意义由于它自身的亮点而被抹杀,不知道是这个技术的幸运还是不幸。
干掉了back按钮(Breaking the back button)
back按钮是一个标准的web站点UI的重要功能。然后,后退按钮没法和js很好的合作……
gmail似乎作的很好?不过没去仔细看过gmail如何实现后退和js相容的,被这个mistake一提醒,也许这也是ue的一个切口哦。
点击的时候没有提供一个可视化的提示(Not giving immediate visual cues for clicking widgets)
……也许是我没看懂,觉得写这段的人自相矛盾。。他说没提供可视化提示,不过是拿gmail右上角的红色提示作为例子。 (更多…)
标签Tags:
ajax,
code,
google,
html,
ie,
javascript,
js,
PHP,
web,
人,
代码,
兼容,
可用性,
应用程序,
收藏,
数据,
方法,
浏览器,
版本,
程序,
系统,
网络编程,
自身,
解决,
诫,
链接,
错误,
页面
PHP, 网络编程
2010年07月22日
by 江小邪
0 comments
在做网站过程中,常常要修改网站模板,而模板受css控制。如果在用CSS设计布局时遇到BUG,请认真阅读以下内容,非常容易记忆的,不知道哪位高人把CSS BUG编成了*****了!看看好不好记住呢?
一、IE边框若显若无,须注意,定是高度设置已忘记;
二、浮动产生有缘故,若要父层包含住,紧跟浮动要清除,容器自然显其中;
三、三像素文本慢移不必慌,高度设置帮你忙;
四、兼容各个浏览须注意,默认设置行高可能是*****;
五、独立清除浮动须铭记,行高设无,高设零,设计效果兼浏览;
六、学布局须思路,路随布局原理自然直,轻松驾驭html,流水布局少hack,代码清爽,兼容好,友好引擎喜欢迎。
七、所有标签皆有源,只是默认各不同,span是无极,无极生两仪—内联和块级,img较特殊,但也遵法理,其他只是改造各不同,一个*号全归原,层叠样式理须多练习,万物皆规律。
八、图片链接排版须小心,图片链接文字链接若对齐,padding和vertical-align:middle要设定,虽差微细倒无妨。
九、IE浮动双边距,请用display:inline拘。
十、列表横向排版,列表代码须紧靠,空隙自消须铭记。
标签Tags:
css,
html,
ie,
人,
代码,
兼容,
图片,
容器,
模板,
网站,
设计,
诫,
邪人邪语,
链接
邪人邪语
2010年05月23日
by 江小邪
0 comments
IE
而IE各个版本典型的userAgent如下:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
其中,版本号是MSIE之后的数字。
Firefox
Firefox几个版本的userAgent大致如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3
Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12 其中,版本号是Firefox之后的数字。
Opera
Opera典型的userAgent如下:
Opera/9.27 (Windows NT 5.2; U; zh-cn)
Opera/8.0 (Macintosh; PPC Mac OS X; U; en)
Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0
其中,版本号是靠近Opera的数字。
Safari
Safari典型的userAgent如下:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1 Safari/525.13
Mozilla/5.0 (iPhone; U; CPU like Mac OS X) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
其版本号是Version之后的数字。
Chrome
Chrome的userAgent是:
Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13
其中,版本号在Chrome之后的数字。
Navigator
目前,Navigator的userAgent是:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6
其中,版本号在Navigator之后的数字。
标签Tags:
2008,
firefox,
html,
ie,
mozilla,
web,
服务器构建&安全,
浏览器,
版本
服务器构建&安全
2010年05月23日
by 江小邪
0 comments
1、什么是Rsync
Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
(更多…)
标签Tags:
ie,
include,
mod,
path,
server,
web,
代码,
判断,
失败,
实例,
密码,
属性,
工具,
搜索,
数据,
方法,
更新,
服务器构建&安全,
源代码,
版本,
程序,
类,
系统,
网站,
表,
说明,
连接,
链接,
错误,
镜像,
隐藏
服务器构建&安全
2010年05月23日
by 江小邪
0 comments
mysql my.cnf文件常见优化模块
[mysqld]
port = 3306
server-id = 1
socket = /tmp/mysql.sock
# 避免MySQL的外部锁定,减少出错几率增强稳定性。
skip-locking
# 禁止MySQL对外部连接进行DNS解析
skip-name-resolve
# 指定MySQL可能的连接数量
back_log = 256
(更多…)
标签Tags:
cache,
div,
ie,
mod,
mysql,
path,
PHP,
server,
session,
sql,
人,
代码,
兼容,
函数,
含义,
密码,
属性,
引入,
成功,
搜索,
操作系统,
数据,
数据库,
最快,
服务器构建&安全,
版本,
程序,
类,
系统,
表,
解决,
连接,
错误,
镜像,
页面
服务器构建&安全
2010年05月23日
by 江小邪
2 comments
<html>
<head><title>新闻图片轮换类</title>
<script type=”text/javascript”>
var fs = new FadeSlideClass();
fs.Width = 430;
fs.Height = 250;
fs.AddImage(“http://www.5bay.cn/Test/Image/001.jpg“, “#”, “新闻标题”);
fs.AddImage(“http://www.5bay.cn/Test/Image/002.jpg“, “#”, “新闻标题”);
fs.AddImage(“http://www.5bay.cn/Test/Image/003.jpg“, “//g.cn”, “去Google”);
fs.AddImage(“http://www.5bay.cn/Test/Image/004.jpg“, “#”, “新闻标题”);
fs.AddImage(“http://www.5bay.cn/Test/Image/005.jpg“, “#”, “新闻标题”);
fs.RenderTo(“divStage”);
/* 以下代码构造轮换类 */
function FadeSlideClass()
{
this.Width = 450;
this.Height = 300;
this.BorderColor = “#ddd”;
this.CurrentColor = “green”;
this.Delay = 5000;
var divContainer = document.createElement(“div”);
var divImage = document.createElement(“div”);
var ulList = document.createElement(“ul”);
var me = this;
var arrImg = new Array;
this.Tag = divContainer;
this.AddImage = function(strImageUrl, strLink, strTitle)
{
arrImg.push(arguments);
}
this.RenderTo = function(container)
{
if(typeof container == “string”) container = document.getElementById(container) || container;
if(typeof container == “string”) return setTimeout(function(){ me.RenderTo(container); }, 100);
if(!arrImg.length) throw new Error(“尚未添加图片。”);
var cssFloat = typeof ulList.style.cssFloat == “string” ? “cssFloat” : “styleFloat”;
divContainer.style.width = this.Width + “px”;
divContainer.style.height = this.Height + “px”;
divImage.style.width = Math.round(this.Width * (arrImg.length – 1) / arrImg.length) + “px”;
divImage.style.height = this.Height + “px”;
divImage.style[cssFloat] = “left”;
ulList.style.width = (this.Width – parseInt(divImage.style.width)) + “px”;
ulList.style.height = this.Height + “px”;
ulList.style.margin = “0px”;
ulList.style.padding = “0px”;
ulList.style[cssFloat] = “left”;
divContainer.style.overflow = “hidden”;
divImage.style.overflow = “hidden”;
ulList.onmouseover = function(){ clearTimeout(me.Handler) };
ulList.onmouseout = function(){ AutoPlay(); };
InitImage(2);
InitList(arrImg.length);
container.appendChild(divContainer);
divContainer.appendChild(divImage);
divContainer.appendChild(ulList);
LiMouseOver.call(ulList.firstChild);
AutoPlay();
this.AddImage = function(){ throw new Error(“该方法已过时。”); }
}
this.Display = function(imgThumb)
{
var img = divImage.lastChild.lastChild;
var opa = new OpacityClass(img);
opa.Set(20);
img.src = imgThumb.src;
img.parentNode.href = imgThumb.parentNode.href;
img.parentNode.title = imgThumb.parentNode.title;
clearInterval(ulList.Handler);
ulList.Handler = setInterval(function(){
if(opa.Add(5) >= 100)
{
divImage.firstChild.lastChild.src = img.src;
clearInterval(ulList.Handler);
}
}, 25);
}
function LiMouseOver()
{
if(this == ulList.oldLi) return;
if(ulList.oldLi) ulList.oldLi.style.borderColor = me.BorderColor;
this.style.borderColor = me.CurrentColor;
ulList.oldLi = this;
me.Display(this.firstChild.firstChild);
}
function InitImage(count)
{
if(–count) arguments.callee(count);
var a = document.createElement(“a”);
a.target = “_blank”;
divImage.appendChild(a).style.position = “absolute”;
var img = new Image;
img.width = parseInt(divImage.style.width);
img.height = me.Height;
img.border = 0;
if(!a.appendChild(img).filters) img.style.opacity = 1;
else img.style.filter = “alpha(opacity=100)”;
}
function InitList(count)
{
if(–count) InitList(count);
var isIeNoDtd = document.compatMode != “CSS1Compat” && /msie/i.test(navigator.userAgent);
var data = arrImg[count];
var thumbWidth = parseInt(ulList.style.width);
var thumbHeight = Math.round(me.Height / arrImg.length);
var li = document.createElement(“li”);
li.style.overflow = “hidden”;
li.style.width = (isIeNoDtd ? thumbWidth : thumbWidth – 4) + “px”;
li.style.height = (isIeNoDtd ? thumbHeight : thumbHeight – 4) + “px”;
li.style.borderWidth = “2px”;
li.style.borderStyle = “solid”;
li.style.borderColor = me.BorderColor;
var a = document.createElement(“a”);
a.target = “_target”;
a.href = data[1];
a.title = data[2];
var img = new Image;
img.border = 0;
img.width = thumbWidth;
img.height = thumbHeight;
img.src = data[0];
img.style.verticalAlign = “top”;
img.style.margin = “-2px”;
a.appendChild(img);
li.appendChild(a);
li.style.listStyle = “none”;
li.onmouseover = LiMouseOver;
ulList.appendChild(li);
}
function AutoPlay()
{
me.Handler = setTimeout(function()
{
LiMouseOver.call(ulList.oldLi.nextSibling || ulList.firstChild);
AutoPlay();
}, me.Delay);
}
function OpacityClass(tag)
{
var isFilter = !!tag.filters;
var obj = isFilter ? tag.filters.alpha : tag.style;
this.Set = function(value)
{
obj.opacity = isFilter ? value : value / 100;
return this;
}
this.Add = function(value)
{
var opa = isFilter ? obj.opacity : obj.opacity * 100;
opa += value;
if(opa > 100) opa = 100;
obj.opacity = isFilter ? opa : opa / 100;
return this;
}
this.valueOf = function()
{
return isFilter ? obj.opacity : obj.opacity * 100;
}
}
}
</script>
</head>
<body>
<div id=”divStage”></div>
</body>
</html>
标签Tags:
class,
css,
div,
google,
html,
ie,
javascript,
JavaScript&Ajax,
mod,
seo,
title,
url,
代码,
图片,
方法,
类,
网络编程
JavaScript&Ajax, 网络编程
2010年05月23日
by 江小邪
1 comment
<div style="border-bottom: red 1px solid; position: absolute; border-left: red 1px solid; width: 500px; height: 190px; overflow: hidden; border-top: red 1px solid; cursor: hand; border-right: red 1px solid" id="div1" onmouseout="change(1);" onmousemove="getpos()" onmouseover="clearTimeout(scrl);"><img onload="change(1);" alt="" src="http://www.jb51.net/upload/out500b.jpg" /></div>
<script>
var scrl,direction="right";
var x,xold,xdiff, i=1;
function change(start){
if(direction == "right"){
if(div1.scrollTop+190 < div1.scrollHeight){
div1.scrollTop += 190;
}
else{
div1.scrollTop = 0;
}
}
else{
if(div1.scrollTop-190 > 0){
div1.scrollTop -= 190;
}
else{
div1.scrollTop = div1.scrollHeight;
}
}
if(start) scrl = setTimeout("change(1)",100);
else clearTimeout(scrl);
}
function getpos(){
x = event.clientX;
xdiff = x – xold;
xold = x;
if(xdiff>0) direction = "right";
if(xdiff<0) direction = "left";
change(0);
}
</script>
标签Tags:
div,
ie,
JavaScript&Ajax,
js,
seo,
网络编程
JavaScript&Ajax, 网络编程
2010年05月23日
by 江小邪
1 comment
正则表达式匹配,其中:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
文件及目录匹配,其中:
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行
flag标记有:
* last 相当于Apache里的[L]标记,表示完成rewrite
* break 终止匹配, 不再匹配后面的规则
* redirect 返回302临时重定向 地址栏会显示跳转后的地址
* permanent 返回301永久重定向 地址栏会显示跳转后的地址
一些可用的全局变量有,可以用做条件判断(待补全) (更多…)
标签Tags:
301,
access,
cookie,
css,
domain,
html,
ie,
include,
js,
PHP,
seo,
server,
sql,
swf,
web,
判断,
图片,
密码,
服务器构建&安全,
正则表达式,
浏览器,
网站,
自定义,
表,
重定向,
链接,
错误,
页面
服务器构建&安全
2010年05月23日
by 江小邪
0 comments
/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P /tmp/memcached.pid
memcached 的服务正式启动
Memcache::add — 添加一个值,如果已经存在,则返回false
Memcache::addServer — 添加一个可供使用的服务器地址
Memcache::close — 关闭一个Memcache对象
Memcache::connect — 创建一个Memcache对象
memcache_debug — 控制调试功能
Memcache::decrement — 对保存的某个key中的值进行减法操作
Memcache::delete — 删除一个key值
Memcache::flush — 清除所有缓存的数据
Memcache::get — 获取一个key值
Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计
Memcache::getServerStatus — 获取运行服务器的参数
Memcache::getStats — 返回服务器的一些运行统计信息
Memcache::getVersion — 返回运行的Memcache的版本信息
Memcache::increment — 对保存的某个key中的值进行加法操作
Memcache::pconnect — 创建一个Memcache的持久连接对象
Memcache::replace — R对一个已有的key进行覆写操作
Memcache::set — 添加一个值,如果已经存在,则覆写
Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩
Memcache::setServerParams — 在运行时修改服务器的参数 (更多…)
标签Tags:
cache,
class,
div,
ie,
PHP,
PHP,
server,
status,
函数,
区别,
对象,
数据,
方法,
版本,
类,
系统,
网络编程,
获取,
表,
连接,
错误
PHP, 网络编程
2008年11月12日
by 江小邪
0 comments
今天,在作一个网页特效的时候,
遇到了一个状况,
因為要作的功能是,卷动瀏览器的卷轴后,
广告图片会跟著滑动.
而这功能,在网路上已经有很多范例了,
所以特别挑了一个简短而且在IE跟Firefox上都可以用的来,
稍微修改一下,写个范例测试,没有问题就想说可以开始套了,
结果没想到将那个片段套在程式裡以后,却不会动…
所以只好重头debug了.
debug到后来才发现,
原本的测试网页中使用的document.body.scrollTop是正常的,
但是套用到php的页面时,
不管怎麼卷动,document.body.scrollTop都是0. (更多…)
标签Tags:
code,
firefox,
google,
html,
ie,
JavaScript&Ajax,
PHP,
图片,
网站,
页面
JavaScript&Ajax