fastboornoder 是 什么意思

Lightning fast Sass compiling with libsass, Node-sass and Grunt-sass | Ben Frain
427 days since this post was last revised. Specific details are likely out of date. The bigger the Sass project you work on, the slower compilation of your Sass project can become. That&s because ordinarily Sass is Ruby based and there&s never been a way around that. Until now.
If you are interested in Libsass, you might be interested to read another post about migrating a code base from a Ruby based Sass compiler to Libsass? If so, take a look at ‘
If your Sass compile is starting to feel too long, consider using Libsass. The projects creators, Aaron Leung and Hampton Catlin (yes, the original Sass creator) describe it on the
like this:
Libsass is a C/C++ port of the Sass CSS precompiler. The original version was written in Ruby, but this version is meant for efficiency and portability
Now, I&d read an interesting post on how to get this going here:
but it was a little too involved for my liking.
However, as luck would have it, there&s a Node &wrapper& version. Andrew Nesbitt describes his fine work on the
Node-sass is a library that provides binding for Node.js to , the C version of the popular stylesheet preprocessor, Sass.
It allows you to natively compile .scss files to css at incredible speed and automatically via a connect middleware.
When he says &incredible speed& he&s not lying! However, I’m no wizard with Node so I wanted an even easier way to get up and running. Enter the
(not to be confused with grunt-contrib-sass which is the &normal& Ruby based version).
Using the grunt-sass plugin provides a simpler way to use libsass and enjoy the incredible Sass compilation speeds it offers. First, a warning:
Now, let&s get on with how you can use this with Grunt. First of all, if you have never used Grunt, take a . Done that? Great.
Now, here&s what you want to be pasting into your package.json file:
"name": "Your Project Name",
"version": "0.0.1",
"devDependencies": {
"grunt": "0.4.5",
"grunt-contrib-watch": "~0.6.1",
"grunt-sass": "^0.16.0"
And here&s what you want to paste into your Gruntfile.js:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
files: ['sass/**/*.{scss,sass}','sass/_partials/**/*.{scss,sass}'],
tasks: ['sass:dist']
livereload: {
files: ['*.html', '*.php', 'js/**/*.{js,json}', 'css/*.css','img/**/*.{png,jpg,jpeg,gif,webp,svg}'],
options: {
livereload: true
options: {
sourceMap: true,
outputStyle: 'compressed'
'css/styles.css': 'sass/styles.scss'
grunt.registerTask('default', ['sass:dist', 'watch']);
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
I&ve kept Grunt contrib-watch in there so you get the joy of LiveReload if you install the relevant browser extension. You’ll also need to amend the name of your styles if you call the file something different.
You should also note the two options in there: sourceComments and outputStyle. I’ve opted for a compressed output style and source maps generation. You can amend the output to a more development friendly expanded and comment out the sourceComments if you don’t need them.
Now, in the root of your project, from Terminal run [sudo] npm install and once npm has worked its magic and your back at the command line, run grunt
Now, change a Sass file and don&t blink!!
About The Author
is front-end web developer and author based in Cheshire, UK.
His books, '', '' and ' are available now.
You can follow him on Twitter .
Comments are closed.R树_百度百科
R树是GUTTMAN于1984年提出的最早支持有序扩展的对象之一,也是目前应用最为广泛的一种结构。许多商用系统,如MapInfo SpatialWaro和Oracle Spatial等均提供对R树的支持,系统PostgreSQL也实现了R树。近二十多年来,许多学者致力于R树的研究,在R树的基础上衍生出了许多变种。比较典型的有R+树、R*树、压缩R树等。
一棵R树满足如下的性质:
1.除之外,所有非根结点包含有m至M个记录索引(条目)。根结点的记录个数可以少于m。通常,m=M/2。
2.对于所有叶子中存储的记录(条目),I是最小的可以在空间中完全覆盖这些记录所代表的点的矩形(注意:此处所说的“矩形”是可以扩展到的)。
3.对于所有非叶子结点上的记录(条目),i是最小的可以在空间上完全覆盖这些条目所代表的点的矩形(同性质2)。
4.所有都位于同一层,因此R树为。
R树是一个高度,它是在k维上的自然扩展,用空间对象的MBR来近似表达,根据地物的MBR建立R树,可以直接对空间中占据一定范围的空间对象进行索引。R树的每一个结点都对应着磁盘页D和区域I,如果结点不是,则该结点的所有子结点的区域都在区域I的范围之内,而且存储在磁盘页D中。如果结点是叶结点,那么磁盘页D中存储的将是区域I范围内的一系列子区域,子区域紧紧围绕空间对象,一般为空间对象的外接矩形。
R树中每个结点所能拥有的子结点数目是有上下限的。下限保证索引对磁盘空间的有效利用,子结点的数目小于下限的结点将被删除,该结点的子结点将被分配到其他的结点中;设立上限是因为每一个结点只对应一个磁盘页,如果某个结点要求的空间大于一个磁盘页,那么该结点就要被划分为两个新的结点,原来结点的所有子结点将被分配到这两个新的结点中。令M为一个结点中记录数目的最大值,mSM/2为一参数,说明一个记录的最小值,m可作为调节的一个可变参数,R树满足如下几项特点:
1.根节点若子节点,则至少有两个子节点;
2.每个非根叶节点和非叶节点包含的实体个数均介于m和M之间;
3.所有在同一层次;
R树兄弟结点对应的空间区域可以重叠,可以较容易地进行插入和删除操作。但正因为区域之间有重叠,可能要对多条路径进行搜索后才能得到最后的结果。当查找与给定的查询窗口相交的所有空间对象时,空间是从开始,向下搜索相应的子树.算法所有约束矩形与查询窗口相交的子树,当到达叶结点时,边界矩形中的元素被取出并测试其是否与查询矩形相交,所有与查询窗口相交的即为要查找的。R树的查询效率会因重叠区域的增大而大大减弱,在最坏情况下,其甚至会由搜索退化成。正是这个原因促使了R+树的产生。
在R+树中,兄弟结点对应的空间区域没有重叠,而没有重叠的区域划分可以使空间索引搜索的速度大大提高,克服了R树中多路查询的问题,但同时它也存在着一些缺陷,如对某个最小约束矩形的划分,可能会引起相关子树上其他结点也需要重新划分,向下分裂操作可能使得已经划分好了的结点被重新划分,空间对象在R+树的叶结点中被重复标记,完成删除运算后,必须对R+树进行重建等,同时由于在插入和删除空间对象时要保证兄弟结点对应的空间区域不重叠,而使插入和删除操作的效率降低。
R*树是最有效的R树变种,它能对覆盖区域、重叠面积和边界周长进行启发式地优化,并通过重新插入节点重建R.树以提高其性能,但重新插入这个过程相当繁琐,其实现过程太过漫长。压缩R树的空间数据集是预先己知的,通过预先对数据进行合理有效的组织,可以保证其具有很高的空间利用率和良好的查询效率,但由于其不能进行动态插入和删除,因而其应用受到了很大限制。
R树是在的扩展,是一种平衡的。R树结构采用平行于轴的最小的边界矩形来近似复杂的空间对象,其主要优点是用一定数量的字节来表示一个复杂的对象。尽管这样会丢失很多的信息,但是空间物体的最小边界矩形保留了物体的最重要的几何特性,即空间物体的位置和其在整个上的范围。
R树的搜索操作很简单,跟B树上的搜索十分相似。它返回的结果是所有符合查找信息的记录条目。而输入是什么?就我个人的理解,输入不仅仅是一个范围了,它更可以看成是一个空间中的矩形。也就是说,我们输入的是一个搜索矩形。
先给出伪代码:
Function:Search
描述:假设T为一棵R树的,查找所有搜索矩形S覆盖的记录条目。
S1:[查找子树]如果T是非叶子结点,如果T所对应的矩形与S有重合,那么检查所有T中存储的条目,对于所有这些条目,使用Search操作作用在每一个条目所指向的子树的根结点上(即T结点的孩子结点)。
S2:[查找]如果T是叶子结点,如果T所对应的矩形与S有重合,那么直接检查S所指向的所有记录条目。返回符合条件的记录。
R树的插入操作也同的插入操作类似。当新的数据记录需要被添加入叶子结点时,若叶子结点溢出,那么我们需要对进行分裂操作。显然,叶子结点的插入操作会比搜索操作要复杂。插入操作需要一些辅助方法才能够完成。
来看一下:
Function:Insert
描述:将新的记录条目E插入给定的R树中。
I1:[为新记录找到合适插入的叶子结点]开始ChooseLeaf方法选择叶子结点L以放置记录E。
I2:[添加新记录至叶子结点]如果L有足够的空间来放置新的记录条目,则向L中添加E。如果没有足够的空间,则进行SplitNode方法以获得两个结点L与LL,这两个结点包含了所有原来L中的条目与新条目E。
I3:[将变换向上传递]开始对结点L进行AdjustTree操作,如果进行了分裂操作,那么同时需要对LL进行AdjustTree操作。
I4:[对树进行增高操作]如果结点分裂,且该分裂向上传播导致了的分裂,那么需要创建一个新的根结点,并且让它的两个孩子结点分别为原来那个根结点分裂后的两个结点。
Function:ChooseLeaf
描述:选择叶子结点以放置新条目E。
CL1:[Initialize]设置N为根结点。
CL2:[叶子结点的检查]如果N为叶子结点,则直接返回N。
CL3:[选择子树]如果N不是叶子结点,则遍历N中的结点,找出添加E.I时扩张最小的结点,并把该结点定义为F。如果有多个这样的结点,那么选择面积最小的结点。
CL4:[下降至叶子结点]将N设为F,从CL2开始重复操作。
Function:AdjustTree
描述:的改变向上传递至以改变各个矩阵。在传递变换的过程中可能会产生结点的分裂。
AT1:[初始化]将N设为L。
AT2:[检验是否完成]如果N为根结点,则停止操作。
AT3:[调整条目的最小边界矩形]设P为N的父节点,EN为指向在父节点P中指向N的条目。调整EN.I以保证所有在N中的矩形都被恰好包围。
AT4:[向上传递结点分裂]如果N有一个刚刚被分裂产生的结点NN,则创建一个指向NN的条目ENN。如果P有空间来存放ENN,则将ENN添加到P中。如果没有,则对P进行SplitNode操作以得到P和PP。
AT5:[升高至下一级]如果N等于L且发生了分裂,则把NN置为PP。从AT2开始重复操作。
R树的删除操作与的删除操作会有所不同,不过同B树一样,会涉及到压缩等操作。相信读者看完以下的之后会有所体会。R树的删除同样是比较复杂的,需要用到一些辅助函数来完成整个操作。
伪代码如下:
Function:Delete
描述:将一条记录E从指定的R树中删除。
D1:[找到含有记录的]使用FindLeaf方法找到包含有记录E的叶子结点L。如果搜索失败,则直接终止。
D2:[删除记录]将E从L中删除。
D3:[传递记录]对L使用CondenseTree操作
D4:[缩减树]当经过以上调整后,如果只包含有一个孩子结点,则将这个唯一的孩子结点设为根结点。
Function:FindLeaf
描述:根结点为T,期望找到包含有记录E的叶子结点。
FL1:[搜索子树]如果T不是叶子结点,则检查每一条T中的条目F,找出与E所对应的矩形相重合的F(不必完全覆盖)。对于所有满足条件的F,对其指向的孩子结点进行FindLeaf操作,直到寻找到E或者所有条目均以被检查过。
FL2:[搜索叶子结点以找到记录]如果T是叶子结点,那么检查每一个条目是否有E存在,如果有则返回T。
Function:CondenseTree
描述:L为包含有被删除条目的叶子结点。如果L的条目数过少(小于要求的最小值m),则必须将该叶子结点L从树中删除。经过这一删除操作,L中的剩余条目必须重新插入树中。此操作将一直重复直至到达根结点。同样,调整在此修改树的过程所经过的路径上的所有结点对应的矩形大小。
CT1:[]令N为L。初始化一个用于存储被删除结点包含的条目的Q。
CT2:[找到父条目]如果N为,那么直接跳转至CT6。否则令P为N的,令EN为P结点中存储的指向N的条目。
CT3:[删除下溢结点]如果N含有条目数少于m,则从P中删除EN,并把结点N中的条目添加入链表Q中。
CT4:[调整覆盖矩形]如果N没有被删除,则调整EN.I使得其对应矩形能够恰好覆盖N中的所有条目所对应的矩形。
CT5:[向上一层结点进行操作]令N等于P,从CT2开始重复操作。
CT6:[重新插入孤立的条目]所有在Q中的结点中的条目需要被重新插入。原来属于叶子结点的条目可以使用Insert操作进行重新插入,而那些属于非叶子结点的条目必须插入删除之前所在层的结点,以确保它们所指向的子树还处于相同的层。我的魅蓝手机开机黑屏显示fastboonode是怎么回事啊该怎么办啊,希望大家帮帮忙_百度知道
我的魅蓝手机开机黑屏显示fastboonode是怎么回事啊该怎么办啊,希望大家帮帮忙
尽量不要同时打开很多软件:根据你自己手机的内存或者配置下载适合自己的手机软件,这样很占内存很容易黑屏手机黑屏死机解决方法,这样运行才会畅快。
其实现在的智能机跟电脑一样:经常清理内存,在我们使用的时候要经常打理,关闭不必要的后台运行程序,要运行过大的软件这样很容易导致死机,让手机保持最佳状态
操作不当导致黑屏。
软件问题。如果手机配置低:
内存不足导致死机
来自团队:
其他类似问题
为您推荐:
黑屏的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁fastbooe这个英语单词是什么意思_百度作业帮
fastbooe这个英语单词是什么意思
fastbooe这个英语单词是什么意思
应该打错了吧?正确的是不是【fast one】fast one[英][fɑ:st wʌn] 快fastboornode 是 什么意思_百度知道
fastboornode 是 什么意思
fastboot mode?快速启动模式建议:先把字打正确
来自团队:
其他类似问题
为您推荐:
其他1条回答
知道不告诉你
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 node什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信