1、js异步和同步加载在性能优化中有什么区别
<script src="file.js></script>
<img src="image.jpg" /> 图片多快出现在你眼前,取决于file.js的装载速度
异步
<script async src="file.js></script>
<img src="image.jpg" /> 图片多快出现在你眼前,不依赖于file.js的装载与执行速度
就是说file.js和image.jpg会同时被请求,什么时候file.js可以执行取决于它自己的下载速度,什么时候渲染image.jpg也只取决于它自己的下载速度。
只有外部引用的javascript才有同步异步的区别,inline的script只有执行的问题,没有远程加载的问题,overhead要小很多所以通常不是问题,只要你不在JS代码里做很慢的同步运算
<script>
....
</script>
调整javascript文件在文件里的位置,和同步异步没有关系,把javascript放在文件后面的方法,叫deferring(延后加载),除了手动把script移动到文档末尾,还可以用
<script defer src="file.js"></script>
意思是在html文件parse完(产生DOM)以后,才执行file.js。
2、controller相关action异步优化怎么做
最新需要用到mvc4 的异步action,以实现页面ajax同时指定一个耗时查询。
使用了AsyncController。
3、PHP异步请求如何优化一秒调用20次接口
可以全部存储到服务器。然后服务器做一个队列,后台有个单独线程处理图片上传到七牛的任务,图片处理完成之后进行回调处理后续任务。
前端显示处理中的类似字样,然后等待后台处理完成,前台页面再去进行修改。
4、js异步和同步加载在性能优化中有什么区别
同步
<script src="file.js></script>
<img src="image.jpg" /> 图片多快出现在你眼前,取决于file.js的装载速度
异步版
<script async src="file.js></script>
<img src="image.jpg" /> 图片多快出现在你眼前,不依赖于file.js的装载与执行速度
就是权说file.js和image.jpg会同时被请求,什么时候file.js可以执行取决于它自己的下载速度,什么时候渲染image.jpg也只取决于它自己的下载速度。
5、接口的查询调用机制哪些优化可以进行异步处理
异步调用复是和同步调用相对的概念
有以制下的语句:
A1
A2
B1
B2
A3
A4
如果同步调用的话,执行顺序为从上之下,前一个完成才能进行后一个,一部调用的话则是按照以下的顺序执行,在执行A2后执行B1的同时开始执行A3,这样就有两条线同时执行。
A1
A2
A3 B1
A4 B2
C#中异步调用是通过代理机制来实现的,以下为例子:test1的代码和test2的同时运行,对于调用者这个主线程来说就是异步调了test1.
定义了以下的代理和满足代理签名的方法
delegate void Sample();
private void test1()
{ }
private void test2()
{ }
调用者的写法:
Sample ss1 = new Sample(this.test1);
IAsyncResult ia = ss1.BeginInvoke(null,null);
test2();
6、为什么需要优化android性能
http用gzip压缩,设置连接超时时间和响应超时时间
http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读。
listview 性能优化
1).复用convertView
在getItemView中,判断convertView是否为空,如果不为空,可复用。如果couvertview中的view需要添加listerner,代码一定要在if(convertView==null){}之外。
2).异步加载图片
item中如果包含有webimage,那么最好异步加载
3).快速滑动时不显示图片
当快速滑动列表时(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE 和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来。
使用线程池
分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待
异步任务
分为核心任务和普通任务,只有核心任务中出现的系统级错误才会报错,异步任务的ui操作需要判断原activity是否处于激活状态
尽量避免static成员变量引用资源耗费过多的实例,比如Context
使用WeakReference代替强引用
弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。
超级大胖子Bitmap
及时的销毁(Activity的onDestroy时,将bitmap回收)
设置一定的采样率
巧妙的运用软引用
drawable对应resid的资源,bitmap对应其他资源
保证Cursor占用的内存被及时的释放掉,而不是等待GC来处理
并且 Android明显是倾向于编程者手动的将Cursor close掉。
线程也是造成内存泄露的一个重要的源头
线程产生内存泄露的主要原因在于线程生命周期的不可控,合理使用多线程。
10
如果ImageView的图片是来自网络,进行异步加载
11
自定义View
应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新
7、如何对异步请求进行优化 android
异步加载的话,这个就是多线程编程了
一两句话也说不清楚,建议你自己看教程吧回
这是android多线程编答程非常详细的教程了http://luo.apkbus.com/