Q.js

CSS 选择器
授权协议 未知
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 国产
投 递 者 颜君浩
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

1, 和Sizzle的兼容
Q(expr, context, result, seed)
Q.matches
支持Sizzle特别的setFilter伪类如:even,:first,:last,:lt...
支持复杂的:not和:has选择器(和sizzle一样)

2, 结果的正确性
Sizzle在某些选择器上由于查询策略的原因,会返回错误的结果
考虑在这样的html上查询
"<div/><h1/><h1/><div/>"
查询 div~div : 应返回1个节点
查询 h1~div: 应返回1个节点
查询 div+h1~div: 应返回一个节点,但是Sizzle没有找到节点

另外
div.querySelectorAll("body *")会返回节点
所以在以元素为context的查询中不使用querySelectorAll进行优化

3, 性能
将选择器编译成函数再进行查询,除了第一次查询需要jit编译之外,以后每次查询都是最快的速度
查询策略引擎会分析选择器的组成,选择最恰当的查询策略(从开始查还是从末尾查还是从中间开始)
排除不必要的运算,如sizzle中的:lt伪类,这里查询时找够节点就会跳出查询,不会继续做无谓的查询

  • q.js在nodejs里是一个非常流行的promise库,支持浏览器端使用,详情请点击这里 q.js跟async要解决的问题差不多,都是解决回调函数的嵌套问题,避免嵌套层级太深导致一系列的问题.只是q.js是以promise来实现回调的扁平化,而async则是通过流程来控制多个异步回调的处理. q.js的所有方法操作的对象都得是一个promise对象,下面来说说怎么用q来创建promise对象 下

  • 金字塔式 //add1 function step1(n, callback) { setTimeout(function(){ callback.call(null, n + 1); }, 100); }; //add2 function step2(n, callback) { setTimeout(function(){ callbac

  • Q.Uploader.js上传图片是真的方便,不用不知道,谁用谁喜欢! 使用Q.Uploader.js上传图片的同时如何传参呢?让我们一睹为快吧! 需引入的js <link href="~js/WebUpLoad/demo.css" rel="stylesheet" type="text/css" /> <link href="~js/WebUpLoad/uploader.css" rel="st

  • 用Q来替代回调函数是编写高质量,易维护的NodeJS代码的方法之一。然后Q的官方指导是英文,并且没有针对性的实例,很不利于初学者掌握。因此我花了两天功夫,把官方的(https://github.com/kriskowal/q)教程按照我的理解重新组织,翻译了一下。并且给出了大量的实例代码,供初学者参考。 1.基本介绍 Promise有个then方法,then方法可以接受3个函数作为参数。前两个函数

  • URL后面#号是代表什么? # 代表页面中的某个位置,也称为地址hash值 #XX 作用当前可视区域移动到页面xx位置 # 仅对浏览器起作用,对服务器无用,所以HTTP请求不包括#(#之后的字符都不会被发送到服务器端。) 改变#不触发网页重载 改变#会改变浏览器的访问历史 如何获取URL中#号的值? 使用window.location.hash这个属性可读可写 如何监听URL中#号值的变化 onh

  • 由于现在的项目是由angular开发的,所以就遇到了这个$q,请看以下代码: activity: function (options) { var deferred = $q.defer(); options.scope = options.scope || $rootScope.$new(); options.scope.showCloseBtn = true;

  • 项目中遇到客户的需求变化,要验证某个数据的正确性,判断输入的两位字符,第一位是数字16进制的,第二位是I、O、Q、U除外的字母(A到Z)。 本来对js不熟练,网上参考了一下js正则验证的规则,使用正则表达式完成了这个验证。 1 function check() { 2 var str = document.getElementById("txtEnglishName

  • Q实现promise的常用方法有7个,在不同情况下使用不同的方法,主要分为数据封装,同步封装和异步封装。 1,将数据封装成promise。 var Q = require('q'); var fs = require('fs'); var colors = require('colors'); //将数据封装成promise //特点:封装一个数据,调用then直接得到该数据 Q('hello,w

  • 【定时器】 <body>     <button>执行一次的定时器</botton>     <button>循环执行的定时器</botton>     <button>清除定时器</botton> </body>      <script type="text/javascript">     var aBtn = document.getElementsByTagName('button');

  • 1、css()设置单个或多个值:   $(".iconList a").css("width", "32%")——单值:属性和值逗号分隔。   $(".iconList a").css( { "width": "32%", "border":"1px solid red" } )——多值:属性和值冒号分隔,属性之间添逗号。 2、运算   https://www.cnblogs.com/james6

  • jq课设 当jq、js同时在文件中, js在script 内 jq代码必须在funtion入口函数内。 不要搞错位置。

  •         之前写过一篇文章,简单介绍了一个基于Node.js的静态文件服务器。那时还只是个人兴趣。最近又有了关于服务器的新的需求,我就想花点时间,好好研究一下。所以把之前的代码拿出来重构了一番,整体代码变得干净很多。         首先最新Node.js是支持generator的,所谓generator,就是javascript中的协程(半协程),不过功能稍弱,仅仅是为了解决js中凶名赫赫

  • JS 的一大特点就是单线程,也就是说,同一时间只能做一件事,这是因为 JS这门语言诞生的使命导致的—— JS 是为处理页面中用户的交互,以及操作 DOM 而诞生的。比如我们对某个 DOM 元素进行添加和删除操作,不能同时进行。应该先添加,然后再删除。 单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。这样所导致的问题是:如果JS执行的时间过长,这样就会造成页面的渲染不连贯,导致

  • 众所周知,angular.js(angular 1.x)是由Google公司开发并维护的热门前端框架, 由于公司内部的一些项目用angluar比较早,所以做项目的时候直接以angular起手的,在项目中遇到过一些前端接口调用的问题,对于一些页面需要调用多个接口的情况, 开始是用anguarl的$watch来处理, 但是angular对数据做的是脏检查, watch越多就越慢,性能就越会下降. an

  • title="posts" dense :data="posts" :columns="columns" row-key="name" > import { api } from 'boot/axios' export default { name: 'PageIndex', data () { return { columns: [ { name: 'id', label: 'the id',

  • 怎么写异步代码?相对原始的callbacks而言,promises无疑是更好的选择。可掌握promises的概念及其用法可能不太容易, 而且很有可能你已经放弃它了。但经过一大波码农的努力,promise的美终于以一种可互操、可验证的方式现于世间。这一努力的结果就是Promises/A+规范,它以自己的方式影响了各种promises库,甚至DOM。 扯了这么多,promises到底是什么?写Node

  • define(function(require,exports,module){     var share_data={};     share_data.url='http://'+location.host+'/php_cgi/syb_video/html/';     share_data.title='游戏时刻';//默认     share_data.desc='快来游戏时刻看大神视频

  • jsq

    计算器 var num; var f; function show(n) { var show =document.getElementById("show"); if(show.value==0){ show.value=""; } show.value = show.value + n.value; } function t() { var show =document.getElementB

 相关资料
  • 问题内容: 如果我只需要2/3列,而是查询而不是在select查询中提供这些列,那么关于更多/更少I / O或内存的性能是否会有所下降? 如果我确实选择了*,则可能会出现网络开销。 但是在选择操作中,数据库引擎是否总是从磁盘中提取原子元组,还是仅提取在选择操作中请求的那些列? 如果它总是拉一个元组,则I / O开销是相同的。 同时,如果它拉出一个元组,从元组中剥离请求的列可能会占用内存。 因此,在

  • 希望能澄清一下我什么时候应该使用和。这可能不是节奏问题,但也许我错过了一些关于Golang的知识。 对于我认为基本思想是等待通道的下一个输出。不完全确定什么是可以。 例如,在cadence示例中,< code>local_activity链接并粘贴在下面: 我们不使用任何 但是,在这里的例子中,它也使用信号通道:根据外部输入改变优步节奏睡眠时间 我还会将代码粘贴到这里 你可以看到有,我不完全确定它

  • 连接池维持一份连接清单,它决定节点在什么时候从活节点转变为死节点(或死节点转变为活节点)。然而连接池选择连接对象时是没有逻辑的,这份工作属于 Selector 类。 选择器(selector)的工作是从连接数组中返回一个连接。和连接池一样,也有几种选择器可供选择。 RoundRobinSelector(默认) 选择器通过轮询调度的方式来返回连接。例如在第一个请求中选择节点1,在第二请求中选择节点

  • 选择器 CasperJS大量使用选择器来处理DOM,并且可以透明地使用CSS3或XPath表达式。 接下来的例子都基于下面的HTML代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>My page</title> </head> <body> <h1 class="page-title">Hell

  • 选择器 See the Pen FEND_Selectors by Li Xinyang (@li-xinyang) on CodePen. 选择器可被看做表达式,通过它可以选择相应的元素并应用不同的样式。 简单选择器 元素选择器 组合选择器 简单选择器 简单选择器可组合使用。 标签选择器 <div> <p>Sample Paragraph</p> <p>Sample Paragraph<

  • 选择器是jQuery的核心。一个选择器写出来类似$('#dom-id')。 为什么jQuery要发明选择器?回顾一下DOM操作中我们经常使用的代码: // 按ID查找: var a = document.getElementById('dom-id'); // 按tag查找: var divs = document.getElementsByTagName('div'); // 查找<p cl

  • 问题内容: 问题: 无法从CSS选择器特定元素中选择。需要验证注册用户是否可以成功更改其密码。我试过了类的不同属性来调用它。当尝试前两个示例时,结果是方法中的异常错误。最后的尝试将调用第一个类实例并重置密码字段(失败)。 尝试过: 目的: 我需要选择共享同一班级的项目。如下所示,该类是共享的。 问题答案: 编辑:因为选择器需要一个,或,但是它们本身都不是。 提供要匹配的类名,并从那里指定要选择的特

  •   特征选择试图识别相关的特征用于模型构建。它改变特征空间的大小,它可以提高速度以及统计学习行为。ChiSqSelector实现卡方特征选择,它操作于带有类别特征的标注数据。 ChiSqSelector根据独立的卡方测试对特征进行排序,然后选择排序最高的特征。下面是一个使用的例子。 import org.apache.spark.SparkContext._ import org.apache.s