上次看到有个 web 招聘笔试题里有个题大意是这样的: 是否尝试写过无限级的导航菜单? 我一时兴致就尝试写了一下.
要想兼容 IE(6/7/8) 系列还真的挺费事. 不得不动用 javascript 以及在 CSS 中使用 hacker. 对 Javascript 我只懂些皮毛. 要想做出些动画效果那几乎不可能. 只好用 jQuery 了.
我现在做了个DEMO. 要修改其动画效果只需要改改 js 中的鼠标效果即可. jQuery 自带的几个动画效果都可以. 当然你还可以发挥你的想象写些自定义动画.
Read more…
我在博客上用了很多的 javascript 代码, 来实现些简单的动画效果和 Ajax . 本意是为了好看, 增强用户体验但是也不得不有所牺牲: 1. 可能会增加数据库请求. 2. 无法使用浏览器前进后退按钮.
今天写个思路来缓解一下第一个问题 ( 数据库请求 ) 注意只是缓解. 因为不是真正的缓存.
我们知道所以的 Ajax 请求其实和不同的请求是没有什么两样的. 但它也有自己的特点:
- 通过特定的 URL 请服务器请求数据.
- 可能包含特定的头部信息 ( RequestHeader ) .
- 服务器端有专门的代码来识别这些特殊请求, 并作相应处理.
Ajax 只是可能增加数据库请求, 并不是绝对会增加数据库请求. 这个要具体情况具体分析. 像我目前使用的这种分页方法就没有增加反而是减少请求.
我的思路是将请求返回的数据在展示的同时也放到一个数组变量里, 在下次请求的时候直接从这个缓存变量中取值. 因此, 这时 Ajax 的请求顺序变为: 先判断缓存如果有需要的数据则返回缓存数据, 没有则执行 Ajax 请求, 并在请求成功后缓存返回数据.
以 Ajax 分页 举例:
Read more…
不知道大家注意到我的links页面没有.我写加了搜索评论和查Google PR的功能.今天写个例子实现查PR的例子.基于POST方法.
这个例子用GET方法其实也是很好的.因为传输的数据很少.但是对于一个比较大的表单.项目比较多.输入的字符比较多.那就必须用POST方法了.
下面开始写服务器端查pr的代码.这些代码是我在网上找的,我把它改成我需要的样子.可能不是最好的方法,但是我的要求是能实现查询即可.是在迅雷上找的.源码没有注明作者.这里不好点名感谢了.总之谢谢.哈哈
Read more…
应网友要求,分享一下Ajax.我拖了好久,今天开始写一些.首先我必须说明这个不是一篇教程.只是希望能和大家分享一下简单的Ajax的实现.希望能够抛砖引玉.
什么是Ajax? 它是 Asynchronous JavaScript and XML的简写.中文意思是,异步JavaScript和XML.所以从这个含义的层面上讲他并不是一种新的技术,而是旧东西的组合.但是由于它开启了一个新的领域,它还是成了一种新技术.受到了大力的追捧.确实是这样,适当的使用Ajax可以使用户体验得到某些难以置信的增强.
使用Ajax你需要一些基本的JavaScript基础.我这里不再复述.实在不懂请Google之.
语义化(X)HTML和DOM.
就Ajax而言.由适当标记构成的文档通常会比其他非语义化的更加清晰,复杂性也更低.更具可控性.你的脚本在文档结构中导航遍历也将更加容易.所以在使用Ajax之前请梳理你的文档DOM.即:使用适当的标签并指定类名和ID.以利于Javascript的识别和操作.
Read more…
很多的站点不管流量,点击是多是少,站长们总是喜欢放些放广告,虽然大多数都挣不到钱,但挣一分是一分.所以从这个方面讲,放置一定量的广告无可厚非.另一角度从用户体验来讲总是多少的要受到影响.比如造成页面的混乱,加载速度的延长等.
我是个比较喜欢整洁的人.对页面比较乱的网页有一种烦躁感.比如很花哨的QQ空间等.因此我几乎不去,虽然现在QQ空间对Firefox的支持已经做得很好了.但是页面的混乱还是让我无法忍受.同样对于广告满天飞的下载站,连找个链接都困难的情况来说,我更是郁闷.所以以下文字可能对喜欢整洁和关注用户体验的朋友有用.
以下实例针对Wordpress.
实现的原理是写入Cookie非常简单.这个由javascript脚本来完成.然后由php判断Cookie.(我认为这种方式比较好)
首先,我们来创建个写Cookie的js.代码如下:
(function(){
function SetCookie(c_name,value,expiredays){
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+"="+escape(value)+
((expiredays==null)?"":";expires="+exdate.toGMTString());
}
window['PHC'] = {};
window['PHC']['SetCookie'] = SetCookie;
})();
Read more…