- 浏览: 26737 次
- 性别:
- 来自: 北京
文章列表
插件需要实现的功能:在谷歌浏览器的页面上,当鼠标选中一段文字之后,浏览器中自动弹出提示,提示中显示的是已经选中的文字。步骤:1.首先我写了一个js,主要执行的功能就是在鼠标选中一段文字之后,弹出被选中的文字 使用的方法:window.getSelection().toString() 该js代码如下,保存为my.js:
window.onload = function(){
document.documentElement.onmouseup = function(){
if(window.getSelection().toString().t ...
在网站开发的过程中我们经常用到的http请求就是get和post,前端优化中有一条建议说多使用get方式的ajax请求,那么到底是为什么的?在这里,我们先了解一下两种请求方式。
get请求方式
数据是通过地址栏传递的 ( /test/demo_form.asp?name1=val1&name2=val2)
get请求的其他特点:
1.get请求可以被缓存
2.get请求将会被记录在浏览器历史记录
3.get请求可以保存为书签
4.get请求有长度限制
5.get请求一般被用来获取数据
post请求方式
数据是通过http me ...
受浏览器的同源策略限制,JavaSript只能请求本域内的资源。跨域资源共享(Cross-Origin Resource Sharing, CORS)是为解决Ajax技术难实现跨域问题而提出的一个规范,这个规范试着从根本上解决安全的跨域资源共享问题。在此之前,解决此类问题的途径往往是服务器代理、JSONP等,治标不治本。目前基本所有浏览器都已经支持该规范。
一个域是由schema、host、port三者共同组成,与路径无关。所谓跨域,是指在http://example-foo.com/域上通过XMLHttpRequest对象调用http://example-bar.com/域上的资源。CO ...
首先,从处理流程上理解,它总是先使用最高效的原生方法来做处理
HTML文档一共有这么四个API:
getElementById 上下文只能是HTML文档
浏览器支持情况:IE 6+, Firefox 3+, Safari 3+, Chrome 4+, and Opera 10+;
getElementsByName,上下文只能是HTML文档
浏览器支持情况:IE 6+, Firefox 3+, Safari 3+,Chrome 4+, and Opera 10+;
getElementsByClassName
浏览器支持情况:IE ...
什么是跨域
JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下:
首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象。更详细的说明可以看下表:
URL
说明
是否允许通信
如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度。 这种情况下决定程序速度的另一个重要因素就是代码本身。
在这里我们会分门别类的介绍JavaScript性能优化的技巧,并提供相应的测试用例,供大家在自己使用的浏览器上验证, 同时会对特定的JavaScript背景知识做一定的介绍。
变量查找优化
变量声明带上var
1. 如果声明变量忘记了var,那么js引擎将会遍历整个作用域查找这个变量,结果不管找到与否,都是悲剧。
如果在上级作用域找到了这个变量,上级作用域变量的内容将被无声的改写,导致莫名奇妙的错误发生 ...
这次的项目我选择了使用seajs实现功能的模块化开发,但是在使用的过程中,发现,对jquery和jqueryMObile的封装有些难题,后来搜集了一下资料,加上对seajs的了解,终于找到了一种方法,能够方便的实现模块化开发,并且不会影响jqueryMobile的事件机制,当然方法不止一种,欢迎大家评鉴,共同进步。
先看一下文件结构(具体可看源代码):
下面介绍对jquery和jqueryMobile的封装,肯定要改源代码了。
jquery:
define(function(){
//jquery 源代码
return $.noConflict();
})
...
jquery选择器的实现流程简析
当我们洋洋得意的使用jquery强大的选择器功能时有没有在意过jquery的选择性能问题呢,其实要想高效的使用jquery选择器,了解其实现流程是很有必要的,那么这篇文章我就简单的讲讲其实现流程,相信会为读者的jquery优化开发提供一些小的建议。
我们知道jquery的$()函数可以传很多种参数(document、string、fn、array、number),那么
1.多使用事件委托
指定给元素的事件处理程序,相当于浏览器运行的程序和网页js代码的连接,这种连接越多,页面执行的速度也就会越慢,因此,使用事件委托减少了这种性能影响,同时也方便事件的卸载
2.避免使用二次评估
类似于 eval("num1+num2") ; var fun1 = new Function("arg1","arg2","return arg1 + arg2"); setTimeout("fun('arg')",500);
...
jquery的使用现在变得越来越普遍,write less ,do more的宗旨贯穿了整个jquery开发。jquery虽然用着方便,但是,使用它还是应该把握技巧的,其实和使用原生js一样,我们也需要掌握相应的优化策略,要想正确的优化jquery开发代码, ...
/*
* element:所要侦听事件的标签
* eventType:事件类型
* handler:所要执行的操作
*/
function singleEvent(element,eventType,handler){//单次侦听时间,侦听后马上移除事件
if(element.addEventListener){//IE9+,opera,chrome,firefox,safari
element.addEventListener(eventType,handler,false);
element.addEventListener(eventType,function(){//移除 ...