站点:
城市在线 http://www.city366.com/
前言:用了半个多月的空余时间,刚刚完成站点的主要内容,还有很多细节需要优化(很多已知的bug还没有修补),仅希望这篇文章可以
传递 使用 js 的 oo 编程,共同体验 超爽的 bs 程序
。
注:程序,美工,测试,需求分析,都自己做了,
前台:
1,纯Ajax,无刷新实现与服务器交互
2,纯Web2.0,Div+CSS布局
3,最少的HTML代码,整个站点的所有HTML对象,均通过js动态生成(生成object对象,并非用innerHTML写入)
4,仅用一个页面,实现网站所有功能。
5,兼容常用浏览器 (IE, Firefox, Opera)
6,最少的服务器交互(包括:最少次数向服务器发送request;每次服务器返回最少量的数据)
7,maximize seo.(没时间,没耐心做了,看看反馈再说吧。)
页面生成流程:
本站前台页面中的所有内容,均通过 js 创建对应的 object ,Ajax 请求内容,填充,初始化对象,并呈递到页面。
页面对象:
1,Group:如:“生活”,“街区”,“餐饮” 。
2,Category:如:“搬家”,“快递”,“送水”。
3,Item:如:“xxx搬家公司”....
所以,页面的呈现需要通过三次Ajax调用,依次载入 所有Group;Selected Group 下的 Category;selected Category 下的 Item。
三类对象
使用现有的 prototype.js 实现js的OO实现。
1, Group:
var GroupItem = Class.create();
GroupItem.prototype =
{
initialize:function(id,enname,cnname)
{
this.Id = id;
this.EnName = enname;
this.CnName = cnname;
this.Item = getGroupMenu(id,cnname);
this.Option = getGroupOption(id,cnname);
this.Categories = null;
this.ItemStrs = null;
}
};
说明:
Id, Enname, CnName, 是Group的三个基本属性,从命名可以得出,就不过多解释了!
getGroupMenu,每当 GroupItem 对象被创建(初始化)时,自动创建其对应页面上的 菜单 HTML Object,(如:“生活”,“街区”)
getGroupOption,每当 GroupItem 对象被创建(初始化)时,自动创建其对应的 HTML Option Object,(如:在“添加信息”时选择分类时用)
Categories,用来存储其下的 Category (Ajax请求的结果),这样做的好处是,该Group下的Category只会被请求一次,再次使用只要调用内存中的对象既可。
ItemStrs,类似 “Categories” 的机制。
2,Category:
var CategoryItem = Class.create();
CategoryItem.prototype =
{
initialize:function(id,enname,cnname,index)
{
this.Id = id;
this.EnName = enname;
this.CnName = cnname;
this.Item = getCateMenu(id,cnname);
this.Option = getCategoryOption(id,cnname);
this.ItemContainer = getItemContainer(cnname);
}
};
说明:
机制与Group类似,具体实现方式,参见源js文件
3,Item:
var ItemItem = Class.create();
ItemItem.prototype =
{
initialize:function(id,title,keyword,content)
{
this.Id = id;
this.Title = title;
this.Keyword = keyword;
this.Content = getCateMenu(id,content);
}
};
说明:
机制与Group类似,具体实现方式,参见源js文件。
前台的东西先写到这,后台的细节下回分解!
分享到:
相关推荐
【标题】"用ajax,prototype,div,css,hibernate实现的动态树"是一个集成多种技术的项目,旨在创建一个交互式的、实时更新的树形结构,这在Web应用程序中常常用于展示层次结构的数据。这个项目的核心在于利用了AJAX...
【标题】"DIV+CSS网页设计效果1"涵盖了网页设计中的关键技术和应用,主要涉及到JSP、CSS和DIV这三个核心元素。在这个主题中,我们将会深入探讨如何利用这些技术来创建高效、美观且功能丰富的网页。 【JSP】全称为...
"后台设计代码 css + div + prototype (经典)"这个主题涉及到三个核心概念:CSS(层叠样式表)、div元素以及Prototype JavaScript框架,这些都是创建高效、美观且响应式的后台界面不可或缺的部分。 首先,CSS(层叠...
它在Web开发中扮演着重要的角色,尤其在AJAX(异步JavaScript和XML)应用中,Prototype.js 提供了丰富的功能和工具,使得开发者能更高效地编写JavaScript代码。 ### 一、Prototype.js核心特性 1. **DOM操作**:...
在Web开发中,"Prototype"通常指的是Prototype JavaScript框架,它是一个强大的JavaScript库,主要用于简化DOM操作,创建Ajax交互以及构建可复用的JavaScript组件。这个压缩包文件"Prototype-CSS-Accordion.zip"显然...
Prototype.js 是一款广泛使用的JavaScript库,它极大地扩展了JavaScript的基本功能,提供了丰富的DOM操作、事件处理、Ajax交互以及对象扩展等工具,使得JavaScript编程变得更加简洁高效。在"prototype-1.6.0.2.js....
这通常通过JavaScript事件监听和异步数据获取来实现,例如使用AJAX加载相关数据。 在学习这些内容时,理解级别要求对概念有所了解,掌握级别需要能够编写相关代码,而应用级别则要求能灵活运用到实际项目中。通过...
Prototype.js 是一个JavaScript库,由Sam Stephenson编写,主要用于简化JavaScript编程,特别是在创建富客户端Web应用程序,即Web 2.0应用中。该库的核心特性是增强了JavaScript的基础,特别是对DOM(Document ...
Prototype是一个JavaScript库,它为JavaScript语言增加了许多便利的功能,而AJAX(Asynchronous JavaScript and XML)则是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。接下来,我们将深入...
JsWeb 传统的JavaScript模式实现刷新 IframeWeb 基于框架的不刷新模式 AjaxWeb 基于Ajax的Web 2.0模式的刷新模式 AsyncAjaxSample Ajax异步调用的完整示例 第2章(/C02/) 2.1.htm 3...
在2005年,Prototype.js因其强大的功能和易用性而受到开发者的欢迎,尤其在创建动态Web页面和实现AJAX效果时。 在VS2005中使用Prototype.js创建模态弹出窗口,首先需要将Prototype.js库引入到项目中。这可以通过在...
"Prototype-1.6.0.2" 是 Prototype JavaScript 框架的一个版本,这个框架在Web开发领域中被广泛使用,特别是在AJAX应用中。Prototype 提供了一系列强大的工具,帮助开发者更高效地操作和扩展JavaScript,使得在...
Prototype AJAX 框架是JavaScript库Prototype的核心特性之一,它为Web开发提供了强大的异步通信功能。Prototype通过简化XMLHttpRequest对象的使用,使得开发者能够轻松地实现页面与服务器之间的数据交换,无需刷新...
3. **Ajax**:Prototype 1.4.0 支持Ajax(异步JavaScript和XML)技术,提供了一套完整的Ajax请求处理机制,包括`Ajax.Request`和`Ajax.Updater`,使得开发者能够轻松实现页面的无刷新更新。 4. **事件处理**:该...
Prototype.js 是一个广泛使用的JavaScript库,由Sam Stephenson编写,它为JavaScript语言提供了许多优雅的扩展,特别是在支持Ajax交互方面表现出色。Prototype.js 的核心目标是简化JavaScript编程,使得开发者能够更...
标题"prototype_PrototypeJS1.6_"中提到的"Prototype"是一个JavaScript库,它为JavaScript编程提供了一套丰富的工具集,主要用于简化DOM操作、创建Ajax应用以及实现对象的继承机制。"1.6版本"表明这是该库的一个特定...
在开始学习前,推荐使用Firefox浏览器并安装Firebug(或现代替代品如Chrome DevTools)和IE Tab插件,前者用于查看和调试JS、CSS代码及DOM结构,后者则便于在不同浏览器间切换测试页面效果。 #### 元素定位示例 ...
PrototypeJS 是一个广泛使用的JavaScript库,它为Web开发提供了丰富的功能和便利,特别是在处理DOM(文档对象模型)操作、AJAX交互以及创建可复用的JavaScript组件方面。标题中的"prototypejs1.6.1_rc2最新版"指的是...
### prototype.js 1.4版开发者...通过以上总结可以看出,prototype.js 是一款功能全面且设计精良的 JavaScript 类库,对于希望利用 JavaScript 和 AJAX 技术简化 Web 开发流程的开发者来说,是一个非常有价值的工具。
Prototype 是另一个流行的JavaScript库,专注于DOM操作和AJAX。1.6.0.3版本提供了以下关键特性: 1. **DOM操作**: Prototype 提供了 `$()`, `$(selector)`, `Element.extend()`, `Element.hide()`等方法,简化了对...