前端....

关于半透明背景的 IE 兼容处理

wiki 上有个记录:使用rgba来实现半透明背景(不半透明文字等)【IE兼容处理】

关于模块化

其实大家应该都经常用,比如在 svn 中提交的 css 常有这样的代码:

<!--#include virtual="block/reset.css"-->
<!--#include virtual="block/header.css"-->
<!--#include virtual="block/layout.css"-->

对于 HTML ,同样也可以用这样的方式。在做大页面的时候常有好处,能把主页面的结构变得更清楚,特别是对于很多页面使用或重复出现的情况,如:

<div id="JcarList">                    
    <!--#include virtual="block/carBlock.html"-->
    <!--#include virtual="block/carBlock.html"-->
    <!--#include virtual="block/carBlock.html"-->
    <!--#include virtual="block/carBlock.html"-->
    <!--#include virtual="block/carBlock.html"-->
</div>

当然,因为是用到了 apache 的 ssi 功能,所以,需要用 http:// 的方式来访问而不能像直接把文件拖进浏览器那样用 file:/// 来访问。

关于 JSON

JSON 全称是 JavaScript Object Notation(JavaScript 对象表示法),有着严格的语法定义(参考《JavaScript语言精粹》附录E:JSON)。

JSON 是一个键值对集合,形式必须是

{string1 : JSON_value, str2, val2}

 

而下面那种 这并不是 JSON,这只是一个数组。

[{str1: val1}, {str2: val2}]

 

关于函数调用与回调(callback)

这是函数调用

function foo() {}
foo();

这是最简单的回调

function bar() {console.log('call me');}

function foo(callback) {
	// 别的代码处理

	callback();	// 执行回调函数
}

foo(bar);

把一个函数(a)作为参数传进另一个函数(b)中,在执行 b 的过程中,执行以参数形式传入的函数 a,这个函数 a 就是我们所说的回调函数(callback)。

其实我们常用的 <script src="xxoo.jsp?callback=cb"></script> 的调用接口形式只是请求一个 JavaScript 文件,和平常的直接的 .js 文件的不同是接口是根据传入的参数(如:callback=cb)来动态生成 JavaScript 代码而已。

上面那个接口返回的内容可能是这样的:

cb(data);
// data 可以是任意合法的 JavaScript 数值,比如 1, 'a', null, undefined, [1, 2, 3], {'name': 'John'} 等等

除了上面的直接用 <script /> 内嵌接口在页面的做法外,更加常见的做法是根据需求,以不同的参数来动态请求接口,然后获得相应的数据。比如电脑网、汽车网等常用的用户登录、ip识别和地区行情等。简单来说,代码形如:

页面或 js 文件中的 js 代码
// 已定义的函数
function cb(data){
	// do something 
}

// 动态请求数据(常见为事件触发,比如 click 等)
var script = document.createElement('script');
var pageNo = 10;
var path = 'http://xxoo.com/getpage.jsp?page=pageNo&callback=cb';
script.src = path;
document.getElementsByTagName('head')[0].appendChild(script);

服务端大概这样处理:

服务器端处理过程
// 获取请求中附带的参数
p = getByRequest('page')
c = getByRequest('callback')

data = getContentByPage(p)	// 根据请求的参数生成数据

output(c(data))		        // 返回数据到浏览器等客户端

这种动态请求 js 的方法又叫 jsonp,主要目的是为了解决 Ajax 无法跨域的问题。虽然叫 jsonp,但和 JSON 其实没太大的关系,只是一开始 data 的格式大多是 JSON 而已。实际使用中,直接返回 HTML 的情况不少。

关于 cms 读取 json 接口

双哥的 cms 配合 JSON 格式来处理的方法很好。不过,如果只是读取 JSON 接口来生成 HTML 的话,可以看下斌哥的记录,比如这个 CMS - 读取json或xml文档并生成静态html代码 - data系列标签应用举例

关于瀑布流

有一个情形需要考虑的:一次加载的数据可能存在不足以撑出竖向滚动条,这样将无法触发滚动来加载更多。

posted @ 2014-03-21 11:29  志在,道在  阅读(126)  评论(0编辑  收藏  举报