angularJS之项目知识

多页应用与单页应用(SPA)
多页应用:一个项目中有多个完整的.html页面
单页应用:只有一个.html是完整的(缺少body主体),其它.html都是不完整的(可能只是一个div而已)
多页应用:多个页面间的跳转可以使用超链接、表单提交、JS…
单页应用:多个“伪页面”间的跳转可以使用超链接、JS(...)
多页应用:页面切换是同步请求:客户端先删除第一个页面的DOM结构,发起HTTP请求,等待服务器给第

二个页面的响应数据
单页应用:伪页面切换是异步请求:客户端首先请求一个完整的页面,然后再发起异步AJAX请求,获取不同

的模板页面,插入在当前
 的DOM树
多页应用:每个页面都是一个完整的DOM树
单页应用:整个项目只有一个完整的DOM树
多页应用:页面切换时控制权在浏览器手中,不可能添加任何的过场动画效果
单页应用:伪页面切换的本质是一棵DOM树上的两个DIV在切换,可以很容易的添加各种过场动画
项目补充知识点:
一个项目中的多个页面中可能包含完全相同的内容,如京东商城中的很多页面都有完全相同的header和

footer部分,若每个HTML都拷贝一遍相同的内容,就违反了DRY设计原则(“不要重复你自己的代码”),

造成代码的维护困难
解决方法有如下几种:
  (1)使用Web服务器的SSI(ServerSideInclude)——修改Web服务器的配置文件
  (2)使用服务器端动态编程语言进行页面的包含,如PHP:  
include(‘header.php‘);
....
include(‘footer.php‘);
    三个PHP页面会组成一个大的响应消息,一次性返回给客户端
  (3)纯前端解决方案:用frameset或iframe——尽量少使用
  (4)纯前端解决方案:
      使用AJAX异步请求:
      产品详情页.html:

	<div id="header"></div>
	<div>主体内容</div>
	<div id="footer"></div>
 $(document).ready(function(){
    $("#header").load("header.html");   //XHR
    $("#footer").load("footer.html");  //XHR
 })

(5)AngularJS中提供了一个类似于方案4的AJAX解决方案——ngInclude指令:
<div ng-include="  ‘header.html‘  ">(PS:ngInclude指令必须赋值为一个字符串!)
(PS:ng中ng-swipe-left="jump()"左滑ng-swipe-right="jump()"右滑)

时间: 2024-12-28 01:55:54

angularJS之项目知识的相关文章

JAVA8,SPRING,ANGULARJS对项目

java8+spring+angularjs 项目应用 最近有写一个电子订单商务网站,使用JAVA8,SPRING,ANGULARJS对项目使用的技术和大家分享. 第一次写博客,哪有不对需要改正的请联系改正. 因为是项目是我给别人做的无法提供源码见谅,我尽最大努力让大家能看懂. 首先从项目的构建开始,我采用的gradle构建项目,使用的版本是2.4. 开发环境用的IDEA 14,项目数据库使用的是SQL SERVER. Spring Boot 技术文档:http://docs.spring.io

AngularJS+requireJS项目的目录结构设想

准备用AngularJS + require.js 作为新项目的底层框架,以下目录结果只是一个初步设想: /default    放页面,不过对于one page 项目,可能里面需要建一个partials文件夹: /develop   放测试及web server相关的东西,这个是不需要部署到正式环境的,所以从static中分离出来了 /static      css+img+js+partials+r.js+build.js,后面两个是require.js打包压缩合并部署需要用的,  css+

研发无忧:超过90%的程序员都需要深入学习项目知识

相信大多程序员做久了,都会有一种迷茫,感觉自己像机器一样编码. 对自己做过的功能模块也不敢拍胸脯说质量是过硬的. 程序员的工作性质,决定了大多数人不能在这个岗位上做太久. 早点转型成为了必然. 即便不转型,要把代码写好,也应该深入学习下项目管理的知识. 比如项目规范.业务架构.过程管理.质量管理甚至软件测试的知识. 一旦学习了这些层面的知识,程序员水平才可能大幅提升. 这是因为, 每一门技术,每一段代码,都是为了解决问题. 换句话说,技术是为了需求而存在. 脱离了需求,孤立的技术再牛逼,也难体现

AngularJS实用基础知识---入门必备

前言 今天来和大家学习一下AngularJS-- AngularJS 通过新的属性和表达式扩展了 HTML. AngularJS 可以构建一个单一页面应用程序. AngularJS 学习起来非常简单. 一.AngularJS指令与表达式 [AngularJS常用指令]1.ng-app:声明Angular所管辖的区域,一般写在body或HTML上,原则上一个页面只有一个.2.ng-model:把元素值(比如输入域的值)绑定到应用程序的变量中.eg:<input type="text"

一步步构建自己的AngularJS(1)——项目初始化

Angular1距离2009年发布已经好多年了,Angular2也已经出了Beta版,估计今年就能正式发布.大多数人对于Angular1.X的认识仅限于能够在项目中使用,对于其中的深层原理知道的并不多.市面上也没有特别好的介绍Angular实现原理的教程或者书籍.今天在看技术文档的时候偶然发现了一本比较好的Angular底层原理书籍<build your own AngularJS>,费了好大功夫买下了全本,随之开始了Angular1.X的底层实现的探索之旅.本系列文章会按照书中的章节,每一章

民宿项目知识_服务器路径与文件的存储

1,文件的硬盘存储路径(文件存放在服务器的根目录,而不是项目,防止服务器重启,资源丢失) 得到项目的名字:如,renli String path1 = request.getContextPath(); path1=path1.substring(1); 得到项目的绝对路径:如,F:\apache-tomcat-8.0.33\webapps\renli\resources String path2 = request.getSession().getServletContext().getRea

项目知识储备-自动属性 隐式类型Var

在项目中应用到的一些基本的小知识点,也不知道原理是什么 ,也不知道为什么.今天查了一下,原来这些东西在 之前的视频中就看到过.小小总结一下. 在 C# 3.0 和更高版本中,当属性的访问器中不需要其他逻辑时,自动实现的属性可使属性声明更加简洁. 客户端代码还可通过这些属性创建对象. 知识点一:自动属性 例如下面 class myClass{ //一般属性用法 privae string name; public string Name{ get { return name;} set { nam

OA项目知识总结2

BaseAction的抽取 项目中的每个实体类都对应一个action  每个action都都要继承ActionSupport类 已以及实现ModelDriver接口  并且需要注入service 虽然每个action注入的service不同 但是也有可能另外一个action需要使用到其他action中的service  那么就存在大量的重复注入代码  尽管service是单例的不影响性能  但是我们需要做的是尽量少些重复代码 例如 此时BaseAction诞生了 package org.base

iOS开发-项目 知识分享与经验积累(一)

近日在做项目的时候,为了快捷适配屏幕采用了Storyboard,添加约束以后运行后发现一个问题(下面将以普通案例展示该问题);在4.7 甚至更大的屏幕下是没有问题的,如下图(4.7屏幕): 但是放到更小的3.5英寸就会出现问题,发现下面的按钮不见了,主要原因是输入框太多,导致更个屏幕放不下,如下图(3.5屏幕): 想了下就决定用ScrolleView,ContentSize可以设置大一些,这样在其他屏幕上没有太多的影响,在3.5英寸的屏幕下也可以滑动了;但是在Storybord下添加Scroll