近期开发了图片上传预览js控件,对此做个总结。主要参考了JavaScript 图片上传预览效果 ( http://www.cnblogs.com/cloudgamer/archive/2009/12/22/ImagePreview.html),图片缓存展现(jquery.LoadImage.demo)和JSP 中图片存储与读取(http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763104c8c711923d030678197027fa3c215cc794c31317190ba30536313a0c26b6075b83959fd833c65467037c49fd5d81480ee8f7369df78297518854116d34efccd15259023c60cbaf91fe6b1a139c7abc5d3a80e15950d113fddb0dd5558558878f0652692ad8e39614860bcfa4315e859067cc8651be914acb7256f7796f6aa4b4db3729123&p=9862c64ad0d517e91ebd9b780959&user=baidu)方面的资料。总结几点:
1.开发新东西要现在网上找找有没有类似的资料可参考,多找些资料,进行选择,组合,在他们的基础上进行修改。站在巨人的肩膀上,这样质量有保证,又能学到新东西。
2.cloudgamer的代码学习:
1):供外部程序调用的方法,暴露出来,不用加"_".自己控件内部使用的方法前面加'_',因为js方面实现面向对象的封装和访问权限控制比较繁琐,容易出问题,故采用如下方法。
2):采用适配器模式,用switch方式,分别判断当前浏览器是IE6,IE7,IE8,FF,chrome等,然后调用各个浏览器能够使用的方式进行预览。采用远程读取是通用方法。jvm和avm也有类似的作用,把适配放到程序里面,对外透明,有容器做操作系统和浏览器的选择和适配。集中控制。达到一次编译到处运行。
3):要有钻研精神,没有什么解决不了的问题,每个问题都有解决办法。你认为的解决不了,是你采用当前方法,当前的思想解决不了,是你思想技术的原因,换一种思路和技术就能解决掉。百招有百解,可以通过绕道采用其他技术和方式解决掉。
4)。尽量使用js原生方法或别人已经封装好,扩展好的的工具方法,效率高,稳定。