- Android性能实战——Systrace分析实例(十二)
c小旭
Android性能优化android性能优化
上一篇文章我们得到了一个html文件,这里我们来通过拿到的trace.html文件来分析一些耗时场景。一、简单场景分析1、快捷键使用在开始分析案例之前我们先来看一下快捷键的使用,可以加快查看Systrace的速度,下面是一些常用的快捷键。W:放大Systrace,放大可以更好地看清局部细节S:缩小Systrace,缩小以查看整体A:左移D:右移M:高亮选中当前鼠标点击的段(可以快速标识出这个方法的
- 移动开发:WebView的性能优化工具推荐与使用
移动开发:WebView的性能优化工具推荐与使用关键词:WebView、性能优化、移动开发、渲染性能、内存管理、调试工具、缓存策略摘要:本文深入探讨移动开发中WebView的性能优化策略和工具。我们将从WebView的核心原理出发,分析其性能瓶颈,介绍一系列实用的性能优化工具和技术,包括ChromeDevTools、AndroidProfiler、Systrace等。文章还将提供详细的代码示例和优
- android-性能分析
以下是Android性能分析的完整指南,涵盖核心工具、优化方向及实操方法,适用于2025年开发环境:⚙️一、性能分析工具分类1.官方工具链工具用途关键能力版本适配AndroidProfiler实时监测CPU/内存/网络/能耗火焰图分析、内存泄漏检测(支持Activity/Fragment自动检测)AndroidStudio3.6+Perfetto系统级追踪(替代Systrace)线程调度、GPU渲
- Android 性能优化
jim_dayday_up
#Android_进阶_应用android性能优化
一、Android中检测性能工具Profiler——使用Profiler的CPU分析功能。MethodTracing————通过该方法,我们可以记录应用运行过程中的方法调用情况,包括每个方法的执行时间、调用次数等。Systrace是Android平台提供的一款工具,用于记录短期内的设备活动。Systrace允许您在系统级别(如SurfaceFlinger、WindowManagerService等
- Android中如何通过perfetto抓取trace
一,perfetto的作用Perfetto的作用是提供一个性能检测和跟踪分析工具集,用于Android、Linux和Chrome平台。Perfetto是Google推出的一款全新的平台级跟踪分析工具,它从Android10开始被引入,旨在替代之前的systrace工具。Perfetto的核心特点包括用户空间到用户空间的跟踪协议,基于protobuf序列化机制的数据填充到共享内存缓冲区,以及支持获取
- Android 监控性能指标的工具:
Frank_HarmonyOS
android
以下是一些可以帮助Android系统UI开发者监控性能指标的工具:1.AndroidProfiler:集成在AndroidStudio中,可监测CPU、内存、网络、电量等多种指标。2.Systrace:用于分析系统和应用的整体性能。3.Traceview:可以详细分析方法执行时间等。4.LeakCanary:帮助检测内存泄漏。5.GPUProfiler:专门监测GPU相关性能。6.Hierarch
- Android卡顿检测与修复
斗锋在干嘛
android
一、基础检测层在基础卡顿检测方面,我主要关注:使用系统工具:开发者选项中的GPU呈现模式分析Systrace抓取关键帧耗时ProfileGPURendering工具简单代码检测:Choreographer.FrameCallback监控帧耗时主线程耗时方法定位(Looper日志)二、自动化监控层在自动化监控方面,我会实施:基于消息队列的监控方案:通过Looper.setMessageLogging
- Android架构深度解读-目录
新程序圆
Android架构arm开发
Vold原理介绍Systrace的原理、流程及定制SELinux介绍AndroidVNDK/VSDKSnapshot编译框架AndroidR常见GC类型与问题案例Androidlogd日志简介及典型案例分析AndroidlinuxeBPF网络相关原理分析Android
- Systrace 学习笔记
程序员Android
androidjava操作系统epoll移动开发
和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、Systrace简介二、Systrace预备知识三、Why60fps四、SystemServer解读五、SurfaceFlinger解读六、Input解读七、Vsync解读八、Vsync-App:基于Choreographer的渲染机制详解九、MainThread和RenderThread解读十、Bin
- Systrace系列1—— 简介
添码星空
工具使用android经验分享idejava
本文主要是对Systrace进行简单介绍,介绍其简单使用方法;如何去看Systrace;如何结合其他工具对Systrace中的现象进行分析。本系列的目的是通过Systrace这个工具,从另外一个角度来看待Android系统整体的运行,同时也从另外一个角度来对Framework进行学习。也许你看了很多讲Framework的文章,但是总是记不住代码,或者不清楚其运行的流程,也许从Systrace这个图
- Android性能优化之启动速度优化
Just_Paranoid
Androidandroid性能优化ProfilerSystrace
Android性能优化之启动速度优化1.App启动流程2.测试启动耗时的方法3.测试启动耗时的分析工具3.1AndroidProfiler3.2TraceView3.3Systrace4.如何优化启动时间4.1.减少DEX文件大小4.2优化Application初始化4.3优化Activity加载4.4使用启动引导页4.5使用启动优化库5.代码分析示例启动速度是衡量Android应用性能的重要指标
- Android优化工具之trace
咸鱼No
如果我们想要待分析的App尽可能接近真实情况,那么必须要在非Debug的App中能启用systrace功能;因为相同情况下Debug的App性能比非Debuggable的差,你无法确保在debuggable版本上分析出来的结论能准确推广到非debuggable的版本上。分析systrace源码之后,发现这个条件只是个障眼法而已;我们可以手动开启App的自定义Label的Trace功能,方法也很简单
- View与ViewGroup layout 过程
Happy 2010
Android源码分析
View与ViewGrouplayout过程这个过程相比measure要简单一点,我们先从View的layout()看起,ViewGroup的layout主要还是判断一些条件之后调用View的layout()View.javapublicvoidlayout(intl,intt,intr,intb){if(DBG_SYSTRACE_LAYOUT){Trace.traceBegin(Trace.TR
- 解决camera后摄切前摄时间过长
bug猎人
Androidandroid
问题现象后摄切前摄,从点击到出第一帧图时间明显比前摄切后摄长。问题分析1,抓取systrace,分析耗时长原因从systrace上看很明显是后摄flush中streamoff耗时长,且是长时间sleep状态引发。从这里可以盲推可能process:sleep,互斥锁,wait等操作。2,sensor_stream_off函数代码分析果然存在三处sleep动作,总共休眠了125ms。3,对比前摄str
- 解决Android camera 录像中拍照帧率不足30fps
bug猎人
Androidandroid
问题现象camera录像中拍照,录出来的视频帧率为29.3fps,未达到30fps。问题分析这个场景相当于跑了previe+vedio+capture,极其损耗性能。当前场景CPU频率已处于最高。抓取systrace分析。1,分析掉帧直接原因SinkNode存在大量一帧耗时超过33.3ms,造成帧率无法达到30fps。2,对比查看线程优先级SinkNode大部分处于Runnable状态,async
- 如何使用systrace检测性能问题?比如丢帧
祁华平
性能测试自动化测试工具android性能测试
要使用Systrace检测任何性能问题,如帧丢失,请执行以下步骤:1.使用USB将您的Android设备连接到计算机。2.在Android设备上启用开发人员选项,并打开USB调试。3.在计算机上打开命令提示符或终端,然后导航到安装AndroidSDK的位置。然后导航到“platform-tools”目录。4.运行以下命令以启动Systrace工具:`/systrace.py-t<duration>
- Systrace 基础知识 - Binder 和锁竞争解读
zhx喜籽
Binder概述Android的大部分进程间通信都使用Binder,这里对Binder不做过多的解释,想对Binder的实现有一个比较深入的了解的话,推荐你阅读下面三篇文章理解AndroidBinder机制1/3:驱动篇理解AndroidBinder机制2/3:C++层理解AndroidBinder机制3/3:Java层为什么要讲Systrace中的Binder和锁,是因为很多卡顿问题和响应速度的
- cpu优化方法
亚瑟-小郎
Android性能优化性能优化cpuandroid
如何找到谁占用了cpu?cpu高的时候有没有抓到进程threadtop,从threadtop找到top3线程和正常场景对比一下就知道是否有异常对明显有异常的线程,看下是否抓到simplerperftrace或systrace,从trace中找到高频调用栈是否异常如果没有抓到,搭建相似环境,尝试复现后抓取现场如果复现不了高cpubug,从系统打印出来的log入手分析,筛选出topthreadid打印
- [linux小水滴]systrace工具使用简介
折木H.O.
linuxandroid
目录1简介2用法3实际操作4用systrace分析问题思路4.1功耗问题分析5参考链接1简介在短时间内记录设备活动被称为systrace。这里所说的systrace是安卓系统中的一个性能数据采集和分析工具。内核部分:linuxkernel中开启ftrace相关模块。如trace_block_getrq()。数据采集:Android系统(即手机)利用Trace类把统计信息输出给ftrace。数据分析
- Systrace学习笔记
lanleihhh
Systraceandroid
Systrace学习笔记1.Systrace快捷键2.线程状态3.CPUinfo4.图形化4.1Frames帧4.2用户活动4.3CPU活动4.4系统事件5.SystemServer5.1SystemServer简介5.2窗口动画5.3AMS(ActivityManagerService)5.4WMS(WindowMagerService)5.5ServiceThread5.6HandlerThr
- 【Android Studio】中的CPU Profiler系统性能分析工具的使用
程序员小何SS
AndroidAndroidstudioandroidstudioandroidide
前言在Android的开发中我们常用的系统性能分析工具有Systrace,Perfetto与Profiler工具。我们依次来看看这些工具。1SystaceSystrace是第一代系统级性能分析工具。在Perfetto出现之前,基本上是唯一的性能分析工具(DDMS在AndroidStudio3.0就被抛弃),它将Android系统和App的运行信息以图形化的方式展示出来,与Log相比,Systrac
- perfetto/systrace基础知识讲解-千里马android framework实战开发
千里马学框架
性能优化androidandroid系统车载系统aospsystraceperfetto
线程状态查看深绿色:运行中(Running)在Running状态就代表着处于cpu上的运行中状态作用:看某个方法是否耗时,可以通过测量Running时间长短判断,也可以进行竞品对比看看cpu能力如何,或者前后对比各个大小核cpu影响方法的耗时可以看到通过选中可以知道该任务是在哪个cpu进行运行的浅绿色:可运行(Runnable)代表线程可以运行但当前没有真正运行中,需要等待cpu调度,这个时间长短
- 千里马2023年终总结-android framework实战
千里马学框架
Frameworkandroidframework车机车载hal安卓程序员手机年终总结
背景:hi粉丝朋友们:2023年马上就过去了,很多学员朋友也都希望马哥这边写个年终总结,因为这几个月时间都忙于新课程hal+systrace+surfaceflinger专题的开发,差点都忘记了这个事情了,今天特别花时间来写个blog总结记录一下这不平凡的一年。1、2023是疫情结束后第一年,也是各行各业艰难的一年2023年里无论是哪个行业,不仅仅是程序员这个行业,都是非常艰难,基本上就是经济危机
- Android 布局分析工具(二)Layout Inspector使用
颖字传说
AndroidStudio升级3.0/3.1后AndroidMonitor/DDMS面板没有了。一脸懵逼解决办法如果仍需使用以前的DDMS,可以双击文件夹下的Android-SDK-->tools-->monitor.bat即可。既然AS不提供DDMS面板了那肯定有替代的工具啊,经过查找总结如下:DDMS和Systrace、HierarchyViewer都不用了。使用AndroidProfiler
- SurfaceFlinger模块-VSYNC研究
努比亚技术团队
Vsync信号是SurfaceFlinger进程中核心的一块逻辑,我们主要从以下几个方面着手讲解。软件Vsync是怎么实现的,它是如何保持有效性的?systrace中看到的VSYNC信号如何解读,这些脉冲信号是在哪里打印的?为什么VSYNC-sf/VSYNC-app时断时续?SF请求VSYNC-SF信号进行合成的流程是怎样的?“dumpsysSurfaceFlinger--dispsync"命令输
- android性能分析工具systrace
Lazy1
这里只记录自己这次试用记录,具体文档官网已经有了现在AS3.1以上已经没有,打开monitor入口,只能进入到androidsdk\tools目录下面手动打开我们打开`monitor’之后imageimage点击ok,然后你就直接操作你需要测试的应用界面就可以上面的时间是5秒,看到他生成的路径在C盘,这个文件只能chrome打开,我们直接拖到谷歌浏览器打开image我们可以看到上面的界面这里我们只
- Hal深入实战/perfetto-systrace实战/SurfaceFlinger合集-安卓framework开发实战开发
千里马学框架
surfaceflingerandroid车载系统安卓framework开发halperfettosystracesurfaceflinger
背景hi,粉丝朋友们:大家好!下面来介绍一下新的framework专题hal+perfetto+surafceflinger,这个专题主要就是分为3大块,但是彼此直接又是相互关联的。比如surfaceflingre模块深入分析需要用到hal相关的模块,比如mapper,hwc等,所以说去分析surfaceflinger就必须要有一定hal基础比较好,还有就是perfetto,大家可能会以为他只是个
- 【工具】Systrace
gykimo
原文:https://www.jianshu.com/p/19b3245207e8?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.ioimage一.概述性能优化是Android中的一个重要知识,也是衡量一个Android工程师水平的重要依据,简单的性能优化,可能很多人都会。比如以下几个优化UI渲染的方法,想必很多人都知道使用“设置
- Android 开发常用性能优化工具总结
月球下的cc
Android性能优化android性能优化androidstudio
目录systraceSystrace是什么?可以分析哪些问题?启动perfetto什么是Perfetto?Perfetto和Systrace的关系?ProfileCPUMemoryWinScope--跟踪窗口转换LayoutInspectorUiAutomatorViewerhierarchyviewerLintTencent/matrix开发者选项显示面(surface)更新动画时长缩放显示布局
- 3-性能分析-android-基于Choreographer渲染机制详解
45度看我
性能分析android性能优化
3-性能分析-android-基于Choreographer渲染机制详解一:主线程运行机制的本质1>引入Vsync之前2>引入Choreographer二:Choreographer简介1>从Systrace的角度来看Choreogrepher的工作流程2>Choreographer的工作流程三:Choreographer处理一帧的逻辑1>doFrame函数主要功能A.计算掉帧逻辑B.记录帧绘制信
- 继之前的线程循环加到窗口中运行
3213213333332132
javathreadJFrameJPanel
之前写了有关java线程的循环执行和结束,因为想制作成exe文件,想把执行的效果加到窗口上,所以就结合了JFrame和JPanel写了这个程序,这里直接贴出代码,在窗口上运行的效果下面有附图。
package thread;
import java.awt.Graphics;
import java.text.SimpleDateFormat;
import java.util
- linux 常用命令
BlueSkator
linux命令
1.grep
相信这个命令可以说是大家最常用的命令之一了。尤其是查询生产环境的日志,这个命令绝对是必不可少的。
但之前总是习惯于使用 (grep -n 关键字 文件名 )查出关键字以及该关键字所在的行数,然后再用 (sed -n '100,200p' 文件名),去查出该关键字之后的日志内容。
但其实还有更简便的办法,就是用(grep -B n、-A n、-C n 关键
- php heredoc原文档和nowdoc语法
dcj3sjt126com
PHPheredocnowdoc
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Current To-Do List</title>
</head>
<body>
<?
- overflow的属性
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
- 《我所了解的Java》——总体目录
g21121
java
准备用一年左右时间写一个系列的文章《我所了解的Java》,目录及内容会不断完善及调整。
在编写相关内容时难免出现笔误、代码无法执行、名词理解错误等,请大家及时指出,我会第一时间更正。
&n
- [简单]docx4j常用方法小结
53873039oycg
docx
本代码基于docx4j-3.2.0,在office word 2007上测试通过。代码如下:
import java.io.File;
import java.io.FileInputStream;
import ja
- Spring配置学习
云端月影
spring配置
首先来看一个标准的Spring配置文件 applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi=&q
- Java新手入门的30个基本概念三
aijuans
java新手java 入门
17.Java中的每一个类都是从Object类扩展而来的。 18.object类中的equal和toString方法。 equal用于测试一个对象是否同另一个对象相等。 toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.(toString 方法是一个很重要的方法) 19.通用编程:任何类类型的所有值都可以同object类性的变量来代替。
- 《2008 IBM Rational 软件开发高峰论坛会议》小记
antonyup_2006
软件测试敏捷开发项目管理IBM活动
我一直想写些总结,用于交流和备忘,然都没提笔,今以一篇参加活动的感受小记开个头,呵呵!
其实参加《2008 IBM Rational 软件开发高峰论坛会议》是9月4号,那天刚好调休.但接着项目颇为忙,所以今天在中秋佳节的假期里整理了下.
参加这次活动是一个朋友给的一个邀请书,才知道有这样的一个活动,虽然现在项目暂时没用到IBM的解决方案,但觉的参与这样一个活动可以拓宽下视野和相关知识.
- PL/SQL的过程编程,异常,声明变量,PL/SQL块
百合不是茶
PL/SQL的过程编程异常PL/SQL块声明变量
PL/SQL;
过程;
符号;
变量;
PL/SQL块;
输出;
异常;
PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言PL/SQL 是对 SQL 的扩展,sql的执行时每次都要写操作
- Mockito(三)--完整功能介绍
bijian1013
持续集成mockito单元测试
mockito官网:http://code.google.com/p/mockito/,打开documentation可以看到官方最新的文档资料。
一.使用mockito验证行为
//首先要import Mockito
import static org.mockito.Mockito.*;
//mo
- 精通Oracle10编程SQL(8)使用复合数据类型
bijian1013
oracle数据库plsql
/*
*使用复合数据类型
*/
--PL/SQL记录
--定义PL/SQL记录
--自定义PL/SQL记录
DECLARE
TYPE emp_record_type IS RECORD(
name emp.ename%TYPE,
salary emp.sal%TYPE,
dno emp.deptno%TYPE
);
emp_
- 【Linux常用命令一】grep命令
bit1129
Linux常用命令
grep命令格式
grep [option] pattern [file-list]
grep命令用于在指定的文件(一个或者多个,file-list)中查找包含模式串(pattern)的行,[option]用于控制grep命令的查找方式。
pattern可以是普通字符串,也可以是正则表达式,当查找的字符串包含正则表达式字符或者特
- mybatis3入门学习笔记
白糖_
sqlibatisqqjdbc配置管理
MyBatis 的前身就是iBatis,是一个数据持久层(ORM)框架。 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis对JDBC进行了一次很浅的封装。
以前也学过iBatis,因为MyBatis是iBatis的升级版本,最初以为改动应该不大,实际结果是MyBatis对配置文件进行了一些大的改动,使整个框架更加方便人性化。
- Linux 命令神器:lsof 入门
ronin47
lsof
lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。
有趣的是,lsof也是有着最多
- java实现两个大数相加,可能存在溢出。
bylijinnan
java实现
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class BigIntegerAddition {
/**
* 题目:java实现两个大数相加,可能存在溢出。
* 如123456789 + 987654321
- Kettle学习资料分享,附大神用Kettle的一套流程完成对整个数据库迁移方法
Kai_Ge
Kettle
Kettle学习资料分享
Kettle 3.2 使用说明书
目录
概述..........................................................................................................................................7
1.Kettle 资源库管
- [货币与金融]钢之炼金术士
comsci
金融
自古以来,都有一些人在从事炼金术的工作.........但是很少有成功的
那么随着人类在理论物理和工程物理上面取得的一些突破性进展......
炼金术这个古老
- Toast原来也可以多样化
dai_lm
androidtoast
Style 1: 默认
Toast def = Toast.makeText(this, "default", Toast.LENGTH_SHORT);
def.show();
Style 2: 顶部显示
Toast top = Toast.makeText(this, "top", Toast.LENGTH_SHORT);
t
- java数据计算的几种解决方法3
datamachine
javahadoopibatisr-languer
4、iBatis
简单敏捷因此强大的数据计算层。和Hibernate不同,它鼓励写SQL,所以学习成本最低。同时它用最小的代价实现了计算脚本和JAVA代码的解耦,只用20%的代价就实现了hibernate 80%的功能,没实现的20%是计算脚本和数据库的解耦。
复杂计算环境是它的弱项,比如:分布式计算、复杂计算、非数据
- 向网页中插入透明Flash的方法和技巧
dcj3sjt126com
htmlWebFlash
将
Flash 作品插入网页的时候,我们有时候会需要将它设为透明,有时候我们需要在Flash的背面插入一些漂亮的图片,搭配出漂亮的效果……下面我们介绍一些将Flash插入网页中的一些透明的设置技巧。
一、Swf透明、无坐标控制 首先教大家最简单的插入Flash的代码,透明,无坐标控制: 注意wmode="transparent"是控制Flash是否透明
- ios UICollectionView的使用
dcj3sjt126com
UICollectionView的使用有两种方法,一种是继承UICollectionViewController,这个Controller会自带一个UICollectionView;另外一种是作为一个视图放在普通的UIViewController里面。
个人更喜欢第二种。下面采用第二种方式简单介绍一下UICollectionView的使用。
1.UIViewController实现委托,代码如
- Eos平台java公共逻辑
蕃薯耀
Eos平台java公共逻辑Eos平台java公共逻辑
Eos平台java公共逻辑
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:20:4
- SpringMVC4零配置--Web上下文配置【MvcConfig】
hanqunfeng
springmvc4
与SpringSecurity的配置类似,spring同样为我们提供了一个实现类WebMvcConfigurationSupport和一个注解@EnableWebMvc以帮助我们减少bean的声明。
applicationContext-MvcConfig.xml
<!-- 启用注解,并定义组件查找规则 ,mvc层只负责扫描@Controller -->
<
- 解决ie和其他浏览器poi下载excel文件名乱码
jackyrong
Excel
使用poi,做传统的excel导出,然后想在浏览器中,让用户选择另存为,保存用户下载的xls文件,这个时候,可能的是在ie下出现乱码(ie,9,10,11),但在firefox,chrome下没乱码,
因此必须综合判断,编写一个工具类:
/**
*
* @Title: pro
- 挥洒泪水的青春
lampcy
编程生活程序员
2015年2月28日,我辞职了,离开了相处一年的触控,转过身--挥洒掉泪水,毅然来到了兄弟连,背负着许多的不解、质疑——”你一个零基础、脑子又不聪明的人,还敢跨行业,选择Unity3D?“,”真是不自量力••••••“,”真是初生牛犊不怕虎•••••“,••••••我只是淡淡一笑,拎着行李----坐上了通向挥洒泪水的青春之地——兄弟连!
这就是我青春的分割线,不后悔,只会去用泪水浇灌——已经来到
- 稳增长之中国股市两点意见-----严控做空,建立涨跌停版停牌重组机制
nannan408
对于股市,我们国家的监管还是有点拼的,但始终拼不过飞流直下的恐慌,为什么呢?
笔者首先支持股市的监管。对于股市越管越荡的现象,笔者认为首先是做空力量超过了股市自身的升力,并且对于跌停停牌重组的快速反应还没建立好,上市公司对于股价下跌没有很好的利好支撑。
我们来看美国和香港是怎么应对股灾的。美国是靠禁止重要股票做空,在
- 动态设置iframe高度(iframe高度自适应)
Rainbow702
JavaScriptiframecontentDocument高度自适应局部刷新
如果需要对画面中的部分区域作局部刷新,大家可能都会想到使用ajax。
但有些情况下,须使用在页面中嵌入一个iframe来作局部刷新。
对于使用iframe的情况,发现有一个问题,就是iframe中的页面的高度可能会很高,但是外面页面并不会被iframe内部页面给撑开,如下面的结构:
<div id="content">
<div id=&quo
- 用Rapael做图表
tntxia
rap
function drawReport(paper,attr,data){
var width = attr.width;
var height = attr.height;
var max = 0;
&nbs
- HTML5 bootstrap2网页兼容(支持IE10以下)
xiaoluode
html5bootstrap
<!DOCTYPE html>
<html>
<head lang="zh-CN">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">