这篇文章主要介绍了Angularjs如何实现页面模板清除的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
js有什么特点
1, js属于一种解释性脚本语言;2,在绝大多数浏览器的支持下,js可以在多种平台下运行,拥有着跨平台特性;3,js属于一种弱类型脚本语言,对使用的数据类型未做出严格的要求,能够进行类型转换,简单又容易上手;4,js语言安全性高,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失;5,基于对象的脚本语言,js不仅可以创建对象,也能使用现有的对象。
<强>模板缓存清除:强>
模板缓存的清除包括传统的HTML标签设置清除缓存,以及Angularjs的一些配置清除,和Angularjs的路由切换清除
1,以下是传统的清除浏览器的方法
HTMLmeta标签设置清除缓存
& lt; !——,清除缓存,——比; & lt; meta  http-equiv=癈ache-Control",内容=皀o - cache,,不是商店,,must-revalidate",/比; & lt; meta  http-equiv=癙ragma",内容=皀o-cache",/比; & lt; meta  http-equiv=癊xpires",内容=?“,/在
清理形式表单临时缓存
& lt; body onLoad=癹avascript: document.formName.reset()“在
2, angularJs配置清除缓存
1,清除路由缓存,在路线路由配置中,注入美元httpProvider服务,通过美元httpProvider服务配置,清除路由缓存。
app.config ([“stateProvider"美元;,“urlRouterProvider"美元;,& # 39;locationProvider& # 39;美元,& # 39;httpProvider& # 39;美元,function (stateProvider美元,美元urlRouterProvider, locationProvider美元,美元httpProvider), { if 才能;(! $ httpProvider.defaults.headers.get), { ,,,httpProvider.defaults.headers.get 美元;=,{}; ,,} 美元才能httpProvider.defaults.headers.common [“X-Requested-With"],=, & # 39; xmlhttprequest # 39;; 美元才能httpProvider.defaults.headers.get [& # 39; cache - control # 39;],=, & # 39; no - cache # 39;; 美元才能httpProvider.defaults.headers.get[& # 39;编译指示# 39;],=,& # 39;no - cache # 39;; }));
2,用随机数,随机数也是一种很不错避免缓存的的方法,即在链接URL参数后加上随机数(一般加时间戳)。用随机时间,和随机数一样。
3,在状态路由配置中,将缓存配置项,配置为假的。
.state (“discountCoupon",, { url:,才能“/discountCoupon", templateUrl才能:“discountCoupon.html ?“, +, new 日期().getTime()//随机数 ,,控制器:& # 39;discountCoupon& # 39; ,,缓存:假的,//缓存配置 }) .state (“customerPhone",, { url:,才能“/customerPhone", templateUrl才能:“customerPhone.html ?“, +, new 日期().getTime()//随机数 ,,控制器:& # 39;customerPhone& # 39; ,,缓存:假的,//缓存配置 })
3, angularJs的路由切换清除缓存
angularJs默认模板加载都会被缓存起来,使用的缓存服务是tempalteCache美元,发送模板请求的服务是templateRequest美元,所以可以在路由切换时将上一个页面的模板清除:
1。每次发送美元http请求模板完成后,可以调用美元tempalteCache.remove (url),或tempalteCache美元。removeAll清除所有模板缓存。
rootScope。美元(& # 39;stateChangeStart& # 39;美元,,,,//路由开始切换 function 才能;(toState,事件,还以为,toParams, fromState,, fromParams), { ,,,//路由开始切换,清除以前所有模板缓存 ,,,if (fromState.templateUrl !==,未定义),{ ,,,,,美元templateCache.remove (fromState.templateUrl); ,,,,,//,templateCache.removeAll美元(); ,,,} ,,}); rootScope。美元(& # 39;stateChangeSuccess& # 39;美元,,,,,//路由切换完成 function 才能;(toState,事件,还以为,toParams, fromState,, fromParams), {//路才能由切换成功,清除上一个页面模板缓存 if 才能;(fromState.templateUrl !==,未定义),{ ,,,美元templateCache.remove (fromState.templateUrl); ,,,//,templateCache.removeAll美元(); ,,} });
2。使用<代码>美元provide.decorator> 代码改写原生的<代码>美元templateRequest> 代码(angularJs自带美元提供服务里,templateRequest: TemplateRequestProvider美元)服务。在美元TemplateRequestProvider服务里面我们可以看到默认使用了tempalteCache美元(本质还是angularJs的,美元cacheFactory服务)服务,