Web前端技术 - 厦门大学数据库实验室
Download
Report
Transcript Web前端技术 - 厦门大学数据库实验室
蔡珉星
2014-03-15
厦大数据库实验室
网站开发
如何快速搭建/开发一个网站
实验室网站的改版经历
Web前端
前端介绍
前端核心的基础技术
前端技术应用解析
网站开发
背景知识:
疑惑1:网站?网页?
网页是单独的,网站是整体的
疑惑2:动态?静态?
静态网站:不涉及服务器语言(PHP等),直接由HTML页面组成
动态网站:通常是从数据库中数据库中读取内容然后输出
静态网页:没有用户交互
动态网页:通常有Javascript
网站开发
几个要点:
网站开发:入门容易精通难;
搭建一个普通的网站挺容易,门槛很低;
如今开发网站,通常会直接应用开源网站框架,或者在此基
础上二次开发,而不是从头开发。
采用框架省事省力
从头开发一个复杂的、可靠的网站需很多人力
Web开发应用广泛,即使不是从事该方向,适当的了解也是
必须的。
网站开发
开源网站框架/系统:
优点:
免费;
可快速搭建网站,样式、功能可扩展,足够应对一般需求;
种类多(博客,论坛,CMS),选择多(层出不穷);
常见的开源网站框架
博客类:WordPress, EMLog, Z-blog
论坛类:Discuz!
CMS类:DeDeCMS, PHPCMS
缺点:
框架漏洞,间接受害;
部分需求可能无法满足(功能方面)
网站开发
网站搭建流程演示:
WordPress & Discuz!
网站开发
网站搭建->上线流程:
本地进行网站搭建及测试;
需要一个服务器/空间;
可能需要一个域名;
上传程序到服务器。
网站开发
低质量网站泛滥:
建站门槛低,成本低;
CMS“逆天”的功能:采集;
类似网络爬虫,获取内容很容易;
利益驱使 -> 投放网络广告,流量大就能带来高收益;
网站开发
实验室网站改版经历
挑战1:网站框架改变(Drupal到WordPress) -> 数据的迁移
数据库的表结构不同;
旧框架,内容所涉及的表超过10个,而新框架存放内容的表只有2个;
页面URL、图片URL改变。
解决:
找对应关系
编写程序批量读取、转换、导入数据(分多步完成,比较容易实现)
获取新旧URL对应,替换数据
网站开发
实验室网站改版经历
挑战2:网站样式 -> 手机端兼容
响应式设计
网上的模板不太满意
功能方面的定制(相册展示)
解决:
响应式设计并不难实现
框架本身的扩展性良好
官方的模板、插件开发文档很齐全
网上搜索解决方法
网站开发
开源Web开发框架
网站系统侧重于直接建站,开发框架则侧重开发
降低开发复杂度,提升开发速度
网站的一个基本功能 - 连接数据库,获取数据的原生PHP代码如下:
网站开发
开源Web开发框架
采用开发框架(ThinkPHP),相同功能的代码如下:
进一步示例:
网站开发
开源Web开发框架
以MVC架构理解Web开发中的前后端之分:后端产生数据,
前端展示数据
Model & Control
View
网站开发
小结:
建站门槛低,有大量的开源网站系统可以直接使用 ;
开发网站很复杂(用网站系统很容易,开发一个就很困难) ;
自行开发网站时,可以使用Web开发框架,提升效率与质量 ;
用MVC架构的角度理解Web开发的前后端之分 .
Web前端技术
Web前端技术
Web前端
网站的重要组成部分,用户直观感受的地方
涉及东西很繁琐,入门容易精通难
Web前端技术
背景知识之:一个网页的显示过程
1.
2.
3.
4.
输入网址,浏览器向服务器发起请求
服务器接收请求,返回数据(一段HTML代码)
浏览器接收HTML代码的同时进行渲染
页面加载、显示完毕
浏览器的渲染
1. 边接收代码边进行渲染;
2. 服务器只是返回HTML代码,浏览器渲染时会根据代码
再向服务器发起请求(图片等资源);
3. 很重要的一点:不同浏览器的渲染机制/标准不同,从
而导致了不同浏览器下,同一页面的显示可能不同。
Web前端技术
前端魅力之CSS (层叠样式表)
页面代码跟样式代码分离;
无需更改HTML代码,只需更改CSS文件就可以更改样式。
Web前端技术
前端魅力之CSS (层叠样式表)
同一个页面,引入不同CSS,样式也就大不相同(换肤功能)
极致 – CSS Zen Garden (www.csszengarden.com)
Web前端技术
前端魅力之:响应式设计
面临多种屏幕尺寸的兼容挑战,挑战已延伸到手机端;
一般方案:判断用户是否使用手机访问,是则输出针对手机的
HTML页面。
响应式设计方案:同一HTML,同一CSS,不同终端自适应。
得益于CSS3的功能: @media
Web前端技术
背景知识:HTML5+CSS3
新一代Web标准 ;
HTML5新增了一些标签与功能,便于开发Web APP ;
目前智能手机端的浏览器一般采用Webkit内核,支持
HTML5+CSS3,基于HTML5标准编写的页面兼容性良好。
CSS3也新增了一些功能,原本需要借助图片、Flash、
JavaScript才能实现的效果,如今应用CSS3,几行代码就能实
现(如文字阴影效果)
Web前端技术
前端魅力之:响应式设计
通过CSS3的 @media ,可以根据屏幕大小自动匹配样式
Web前端技术
前端核心语言:JavaScript
跟Java没有关系 (雷锋跟雷峰塔…);
最早诞生是为了验证用户输入表单数据的正确性;
解释性语言(即代码执行时不进行预编译);
只要浏览器带有解析器(都有带),便可在浏览器上运行
JavaScript程序。
Web前端技术
背景知识:DOM
文档对象模型(Document Object Model,DOM)
DOM将HTML页面映射成节点树
Web前端技术
JavaScript特征
基于DOM,JavaScript可以很方便的操作节点(添加、删除
、修改)
Web前端技术
JavaScript特征
事件机制
回调
Web前端技术
你是否注意到这个: Google Suggest
如何实现
???
Web前端技术
Web 2.0 核心技术:Ajax
Asynchronous JavaScript and XML,异步JavaScript和XML ;
引领网站架构变革的核心技术 ;
并不是一个全新的语言,而是由多种已有技术组成。
描述数据:HTML
展示数据:JavaScript DOM操作、CSS
请求数据:XMLHttpRequest object(XHR) 、XML 、JSON
应用广泛,Web前端必备技能
Web前端技术
背景知识之:Web中的同步与异步
同步
发起请求成功后
浏览器会清空当前内容
再重定向到一个新的页面
异步
在当前页面返回数据
浏览器不会重定向
Web前端技术
Ajax简单的例子
Web前端技术
Ajax简单的例子
点击按钮后
Web前端技术
Ajax优势
容易实现
无需跳转到新页面即可显示新数据(无刷新,显示速度快)
减少数据的传输,减轻服务器压力
创意应用
Ajax应用场景
注册(判断用户名是否可用)
登陆
加载新内容(翻页)…
Web前端技术
Ajax应用解析 – 瀑布流式布局
起源于Pinterest,参差不齐的布局,会不断加载内容
特别适合于图片展示
应用广,图片类应用基本都会采用
Web前端技术
瀑布流演示
Web前端技术
Ajax应用解析 – 瀑布流式布局
Web前端技术
Ajax应用解析 – 瀑布流式布局
Web前端技术
现在你就大致清楚Google Suggest等绝大多数
Ajax应用的实现原理了
Web前端技术
Ajax应用数据传输 – JSON
JSON(JavaScript Object Notation,JavaScript对象表示法)
轻量级的数据交换格式,比XML更小、更快
Web前后端均支持良好
Web前端技术
Ajax应用数据传输 – JSON
JSON的格式 - 类数组
JavaScript原生支持
多数编程语言也有相
应的函数进行处理
json_encode()
json_decode()
Web前端技术
Ajax应用数据传输 – JSON
QQ空间数据请求示例
Web前端技术
JSON的更多应用 -> 数据库
应用场景 -> 存储属性,以商品属性为例
商品属性多,如果要存到数据库里,如何存储?
方案一:
方案二:key-value
方案三:JSON
Web前端技术
JavaScript不只是前端!
解释性语言,有解析器就能运行,那如果我们把解析器从
浏览器中提取出来,来运行Javascript程序会是怎样?
node.js
Web前端技术
node.js
专注高性能Web应用,简单的代码就能构建强大的应用 ;
前端、后台均使用JavaScript语言来开发 。
Web前端技术
关于前端的其他事:
前端也有开发框架( jQuery)
前端开发资源很多(模板、样式、脚本),套用很容易
套用一些酷炫的效果很容易,开发就不是一回事了
前端代码是完全暴露的,copy难度很小
小公司一般不会有专门的前端开发,前端人员往往身兼数职
Web前端技术
小结:
前端涉及方面广,入门容易精通难 ;
创意很重要 ;
Ajax是核心技术,且不难掌握 ;
Web前端资源丰富,但代码难保护
前端技术不仅是前端
HTML5+CSS3 对界面设计的影响 ;
node.js 使JavaScript走向Web后端开发 ;
Google推出取代JavaScript的语言Dart ;
下一个变革?
推荐学习网站: www.w3school.com.cn
Thanks.