iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >Angular.js中如何处理页面闪烁
  • 866
分享到

Angular.js中如何处理页面闪烁

2024-04-02 19:04:59 866人浏览 泡泡鱼
摘要

这篇文章主要介绍angular.js中如何处理页面闪烁,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况。

这篇文章主要介绍angular.js中如何处理页面闪烁,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

前言

大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况。数据还没响应,但页面已经渲染了。这是因为浏览器和angularjs渲染页面都需要消耗一定的时间,这个间隔可能很小,甚至让人感觉不到,这种情况一切正常,但这个时间也可能很长,这时候用户可能会看到满屏尽是{{xxxx}}。这种情况被叫做“Flash Of Unrendered Content (FOUC)(K)?and is always unwanted.”。

问题

为了图方便,我们很喜欢使用下面的做法

 <div>
 {{name}}
 </div>

但这也为满屏尽是{{}}埋下了坑。当接口,网络响应速度够快的情况下,很难发现这个问题,但放在移动端4g或者网络环境更差的情况下,这个问题就会频发。

解决办法

1、ng-cloak

该指令是angularjs的内置的指令,它的作用是隐藏所有被它包含的元素。在浏览器加载和编译渲染完成后,angularjs会自动删除nGCloak元素属性,这样这个元素就会变为可见的。

 <div ng-cloak>
 {{name}}
 </div>

2、ng-bind

该指令是angularjs内置的用于绑定页面数据的指令。可以使用该指令代替{{}}的方式绑定数据到页面上。使用ng-bind可以防止未被渲染的{{}}展示给用户。如下所示:

 <div ng-bind="name"> 
 </div>

3、resolve

当使用routes路由的时候,resolve可以防止我们在route路由被完全加载之前获取我们需要加载的数据,当数据被加载成功之后,路由再改变而页面也会呈现给用户,数据没有加载成功route不会改变。

可以参考:https://www.jb51.net/article/80523.htm

angular.module('myApp', ['ngRoute'])
.config(function($routeProvider) {
 $routeProvider
 .when('/account', {
 controller: 'AccountCtrl',
 templateUrl: 'views/account.html',
 resolve: {
 // We specify a promise to be resolved
 account: function($q) {
 var d = $q.defer();
 $timeout(function() {
 d.resolve({
 id: 1,
 name: 'Ari Lerner'
 })
 }, 1000);
 return d.promise;
 }
 }
 })
});

resolve 项需要一个key/value对象,key是resolve依赖的名称,value可以是一个字符串(as a service)或者一个返回依赖的方法。

resolve is very useful when the resolve value returns a promise that becomes resolved or rejected.

当路由加载的时候,resolve参数里的keys可以作为可注入的依赖:

ngular.module('myApp')
.controller('AccountCtrl', 
 function($scope, account) {
 $scope.account = account;
});

我们同样可以使用resolve key传递$Http方法返回的结果,as $http returns promises from it's method calls:

angular.module('myApp', ['ngRoute'])
.config(function($routeProvider) {
 $routeProvider
 .when('/account', {
 controller: 'AccountCtrl',
 templateUrl: 'views/account.html',
 resolve: {
 account: function($http) {
 return $http.get('http://example.com/account.JSON')
 }
 }
 })

推荐定义一个独立的service的方式来使用resolve key,并且使用service来相应返回所需的数据(这种方式更容易测试)。要这样处理的话,我们需要创建一个service:

首先,看一下accountService,

angular.module('app')
.factory('accountService', function($http, $q) {
 return {
 getAccount: function() {
 var d = $q.defer();
 $http.get('/account')
 .then(function(response) {
 d.resolve(response.data)
 }, function err(reason) {
 d.reject(reason);
 });
 return d.promise;
 }
 }
})

定义好service之后我们就可以使用这个service来替换上面代码中直接调用$http的方式了:

ngular.module('myApp', ['ngRoute'])
.config(function($routeProvider) {
 $routeProvider
 .when('/account', {
 controller: 'AccountCtrl',
 templateUrl: 'views/account.html',
 resolve: {
 // We specify a promise to be resolved
 account: function(accountService) {
 return accountService.getAccount()
 }
 }
 })

以上是“Angular.js中如何处理页面闪烁”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网html频道!

--结束END--

本文标题: Angular.js中如何处理页面闪烁

本文链接: https://www.lsjlt.com/news/77683.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Angular.js中如何处理页面闪烁
    这篇文章主要介绍Angular.js中如何处理页面闪烁,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况。...
    99+
    2022-10-19
  • Angularjs如何处理页面闪烁
    这篇文章给大家分享的是有关Angularjs如何处理页面闪烁的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。摘要在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的...
    99+
    2022-10-19
  • 如何解决小程序页面闪烁问题
    解决小程序页面闪烁问题的方法:主要由于运行内存不够,微信对小程序图片渲染过大进行拦截,引起的小程序页面闪烁问题。优化办法:对大图片进行压缩,如果是网页路径可附加参数x-oss-process=image/auto-orient,1/resi...
    99+
    2022-10-08
  • 如何解决vue页面加载闪烁的问题
    这篇文章主要介绍了如何解决vue页面加载闪烁的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。v-if 和 v-show 的区别v-if只...
    99+
    2022-10-19
  • Ajax如何实现无闪烁定时刷新页面
    这篇文章主要介绍Ajax如何实现无闪烁定时刷新页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在Web开发中我们经常需要实现定时刷新某个页面:来保持session的值或者检查session的值是否为空(比如说防止同...
    99+
    2023-06-08
  • vue刷新页面时如何实现去闪烁提升用户体验效果
    小编给大家分享一下vue刷新页面时如何实现去闪烁提升用户体验效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先在最外层div...
    99+
    2022-10-19
  • C#开发中如何处理动态页面和RESTful API
    C#开发中如何处理动态页面和RESTful API随着互联网的发展,动态页面和RESTful API成为了Web开发中常见的两种方式。在C#开发中,如何处理动态页面和RESTful API,是一个需要掌握的重要技能。本文将介绍如何使用C#处...
    99+
    2023-10-22
    C#开发 动态页面处理 RESTful API处理
  • 如何处理防止页面url缓存中ajax中post请求
    这篇文章将为大家详细讲解有关如何处理防止页面url缓存中ajax中post请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。防止页面url缓存中ajax中post请求的处...
    99+
    2022-10-19
  • 微信小程序如何处理页面缓存
    微信小程序处理页面缓存的方法: 根据当前时间作为判断依据,缓存数据,代码: Page({   data: {   },   onLoad: function () { ...
    99+
    2022-10-21
  • ajax提交session超时跳转页面如何处理
    本篇内容主要讲解“ajax提交session超时跳转页面如何处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax提交session超时跳转页面如何处理”吧...
    99+
    2022-10-19
  • 如何解决Vue中 v-if 和v-else-if页面加载出现闪现的问题
    这篇文章主要介绍了如何解决Vue中 v-if 和v-else-if页面加载出现闪现的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue...
    99+
    2022-10-19
  • 如何解决vue this.$forceUpdate() 处理页面刷新问题
    这篇文章主要为大家展示了“如何解决vue this.$forceUpdate() 处理页面刷新问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决vue ...
    99+
    2022-10-19
  • 局域网中如何解决批处理闪退、运行中断等问题
    这篇文章主要为大家展示了“局域网中如何解决批处理闪退、运行中断等问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“局域网中如何解决批处理闪退、运行中断等问题”这篇文章吧。一、闪退不要随便修改批处...
    99+
    2023-06-08
  • DVA框架如何统一处理所有页面的loading状态
    这篇文章主要介绍DVA框架如何统一处理所有页面的loading状态,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!dva 有一个管理 effects 执行的 hook,并基于此封装了 ...
    99+
    2022-10-19
  • 页面设计中如何合理应用table和div
    这篇文章主要为大家展示了“页面设计中如何合理应用table和div”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“页面设计中如何合理应用table和div”这篇文章吧。table和div 的合理应...
    99+
    2023-06-08
  • 如何处理vue router 路由传参刷新页面参数丢失
    目录概述方法一:通过 params 传参方法二:通过 query 传参方法三:使用 props 配合组件路由解耦概述 常见场景:点击列表的详情,跳转到详情内页,在内页根据传递的参数获...
    99+
    2022-11-12
  • 如何理解Div+CSS布局中的页面布局和规划
    本篇文章为大家展示了如何理解Div+CSS布局中的页面布局和规划,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Div+CSS布局入门 在网页制作中,有许多...
    99+
    2022-10-19
  • C#开发中如何处理图像处理和图形界面设计问题
    C#开发中如何处理图像处理和图形界面设计问题,需要具体代码示例引言:在现代软件开发中,图像处理和图形界面设计是常见的需求。而C#作为一种通用的高级编程语言,具有强大的图像处理和图形界面设计能力。本文将以C#为基础,讨论如何处理图像处理和图形...
    99+
    2023-10-22
    图像处理 界面设计 C#开发
  • 如何处理web登录超时给出提示跳到登录页面的问题
    本篇文章为大家展示了如何处理web登录超时给出提示跳到登录页面的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、一般页面登录超时验证,可以用过滤器filter...
    99+
    2022-10-19
  • 计算机中如何使用批处理整理集合第1/3页
    这篇文章主要为大家展示了“计算机中如何使用批处理整理集合第1/3页”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“计算机中如何使用批处理整理集合第1/3页”这篇文章吧。先概述一下批处理是个什么东东...
    99+
    2023-06-09
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作