DOM操作琐碎知识点
1. parentWindow 与 defaultView
parentWinow是IE下document的特有属性,表示的是document所在的window对象
defaultView DOM Level2中引入的属性,document.defaultView指向默认的AbstractView。
2. 各种坐标以及维度属性
1. parentWindow 与 defaultView
parentWinow是IE下document的特有属性,表示的是document所在的window对象
defaultView DOM Level2中引入的属性,document.defaultView指向默认的AbstractView。
2. 各种坐标以及维度属性
本文主要介绍以下几项的检测方法:
1. Javascript版本信息
2. Cookie是否开启
3. 用户的屏幕分辨率
4. Flash版本号以及浏览器是否开启了Flash拦截功能
5. 浏览器字体大小是否正常(某些浏览器缩放后会导致页面布局混乱)
6. 浏览器的Ajax功能是否正常,包括Get方式和Post方式
7. 浏览器的图片浏览功能是否正常
8. 用户的网络速度
通过对以上几个问题的检测,开发人员能够比较全面的了解目标浏览器的整体环境。
(更多…)
前不久,Google发布了一系列与WEB开发相关的工具,包括Closure Compiler、Closure Library与Closure Templates,其中Closure Compiler被Google称之为Javascript 优化器(Javascript Optimizer)。通过编译,Compiler可以使代码获得更佳的紧凑性和更高的性能。它不仅能删除无用的代码,同时还会重写和压缩代码以获得更好的下载和运行速度。此外,它还能检查代码中的语法、变量引用以及变量类型,并在发现问题后给出警告。
(更多…)
1. Javascript在执行前会进行类似“预解析”的操作:首先会创建一个当前执行环境下的活动对象,并将那些用var申明的变量设置为活动对象的属性,但是此时这些变量的赋值都是undefined,并将那些以function定义的函数也添加为活动对象的属性,而且它们的值正是函数的定义。
(更多…)
需要解决的问题很简单,就是如何在页面上比较准确的显示服务器时间。目前比较常用的方法就是根据基准时间使用setTimeout或setInterval来计算最新的时间,这样的问题在于setTimeout与setInterval的时间精度比较低,经测试一分钟大概能相差几秒(与电脑性能以及运行的任务也相关),这样的精度在某些需求下是无法满足的。除此之外,如果要获得比较准确的时间可以定期与服务器进行校准,只是这样实现的成本大一些。
下文主要比较两种现有的Javascript callback实现机制,暂且定为简单版和完整版,简单版的实现只有几行代码,但是无法捕获错误响应,完整版的代码多一些确可以实现错误捕获,而且可以使用的更方便。
简单版的实现大致如下:
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
/*onreadystatechange在IE下使用,onload在其他浏览器下使用*/
script.onload = script.onreadystatechange = function(){
if( !script.readyState || (script.readyState && script.readyState == 'loaded'){
//TODO
}
}
head.appendChild(script);
短短几行代码已经能满足基本的需求了,而且兼容性还很不错。不过无法提供出错处理,而且使用起来不方便。
Ajax技术的优势在于可以按需加载以及无刷新加载,用户可以在一个单独的页面中完成传统技术中需要多个页面间刷新、切换才能完成的操作,这使得用户体验大大提升,Ajax应用也越来越普及。不过,正是因为其“无刷新”的特点也留下了很多诟病,最严重的一点就是使得浏览器的“前进”、“后退”和“刷新”按钮失效,在操作的过程中,当用户因为某种原因希望撤销当前操作时,却发现曾经熟悉的“后退”按钮依然是灰色的,当用户按下“刷新”按钮后确发现刷新的不是当前的画面……等等。此外,当用户点完了页面上所有可以点的地方后终于发发现了一处有意思的地方,于是决定将有意思的东西发送给他的朋友,当他的朋友收到链接并打开后却没发现任何东西…..这就是在Ajax应用中普遍存在的另一个问题-动态内容的不可收藏性。
其实,在Ajax应用中是完全可以解决以上的“前进”、“后退”以及链接收藏问题的,但是鉴于各种浏览器的“特性”,需要解决很多问题才能实现这一目标,以下列出了实现浏览兼容历史管理方案需要解决的一些主要问题。
首先说说Flex中的元素分类,从功能层面可以把Flex中的元素分为组件(Components)和容器(Containers)两大类:
组件 - 是指那类具有明确交互或数据展示功能的元素,例如Button、Checkbox、Datagrid、List等。
容器 - 是指那类用来放置其他元素的元素,容器往往不具有特定的交互功能,主要的功能就是容纳元素。容器再细分又可以分为布局(Layout)容器和导航(Navigator)容器,其中布局容器的功能就是用来布局界面元素的,例如Application、Panel等;导航容器主要用于进行功能性的导航,进行界面切换,例如TabNavigator等。
(更多…)
MXML是Adobe为Flex推出的一套基于XML的标记语言,目的在于简化Flex的UI开发。实际功能则不仅仅局限于此,除了可以实现布局、控件等UI之外,还可以实现数据定义、与服务器交互等功能。MXML中的标签基本上都与Flex类库中的某个类相关联的(编译器标签除外),这一点从framework中的mxml-manifest.xml文件中可以看到。