小编Ric*_*omi的帖子

制作CSS精灵的工具?

是否有任何好的工具来制作css精灵?

理想的我想给它一个图像目录和一个现有的.css文件引用那些图像并让它创建一个用所有小图像优化的大图像并更改我的.css文件来引用这些图像.

至少我希望它能够获取一个图像目录并生成一个大的精灵和.css,将每个精灵用作背景.

是否有任何好的photoshop插件或完全成熟的应用程序来做到这一点?

css css-sprites web-performance

126
推荐指数
7
解决办法
6万
查看次数

浏览器使用什么启发式来缓存未明确设置为可缓存的资源?

13.2.2启发式过期

由于源服务器并不总是提供明确的到期时间,因此HTTP缓存通常会分配启发式到期时间,采用使用其他标头值(例如Last-Modified时间)的算法来估计合理的到期时间.HTTP/1.1规范没有提供特定的算法,但确实对其结果施加了最坏情况的约束.由于启发式到期时间可能会影响语义透明度,因此应谨慎使用,我们鼓励源服务器尽可能提供明确的到期时间. HTTP/1.1 RFC 2616

浏览器使用什么算法来估算合理的到期时间?

理想的答案将涵盖所有主要浏览器,并提供源代码或官方博客文章的证据.

safari firefox internet-explorer google-chrome browser-cache

24
推荐指数
5
解决办法
4438
查看次数

jQuery的延迟回调执行序列

jQuery的Deferred/promise有两个结果:已解决和被拒绝.您可以将回调附加到与任一状态关联的Deferred.附件的条件已完成(与已解决相关联),失败(与拒绝关联)和始终(与两个状态相关联).当状态从挂起移动到非挂起时,我没有成功地确定回调的顺序; 即,对于完成和始终(或失败并始终),回调对每个已解决和拒绝状态执行的顺序是什么?

jquery promise deferred

17
推荐指数
2
解决办法
4890
查看次数

在什么情况下使用HTTP/2单独加载图像比使用sprite和HTTP/1.1加载所有图像要慢?

HTTP/2使得可以复用连接,从而无需连接到服务器.通过单个连接,可以将许多单独的图像发送到客户端.这消除了将许多图像组合成一个并使用CSS将其分开的旧图像精灵图案.

我很好奇精灵在HTTP/2世界中是否真的更快.如果是这样,在什么情况下呢?

html css image css-sprites web-performance

12
推荐指数
1
解决办法
190
查看次数

全局错误处理如何在服务工作者中工作?

我找到了https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/onerror,其中说:

ServiceWorkerContainer接口的onerror属性是在关联的服务工作者中发生错误事件时触发的事件处理程序.

但是我无法在Chrome中使用它(v51).在主应用程序的范围内,我从控制台运行以下代码:

navigator.serviceWorker.onerror = function(e) { console.log('some identifiable string' + e); };
Run Code Online (Sandbox Code Playgroud)

然后在活动服务工作者的范围内,我触发了一个任意错误:

f(); // f is undefined
Run Code Online (Sandbox Code Playgroud)

结果是通常的"未捕获的ReferenceError:f未定义(...)"错误消息,但它没有通过我的全局onerror处理程序记录.

MDN页面说自从v40以来Chrome一直支持这个API,但navigator.serviceWorker.onerror最初是未定义的,这让我相信它没有实现.有人熟悉这个吗?

javascript google-chrome service-worker

11
推荐指数
1
解决办法
2074
查看次数

设置隐藏的datalist选项值

在下面的代码段中,我有两种方法可以选择项目:使用datalist输入和使用选项进行传统选择.

select元素保持选项值隐藏,我们仍然可以使用它this.value.但是,对于datalist,实际显示该值,并且该选项的文本内容显示为辅助标签.

我想要的是让输入+数据主义方法的行为类似于传统的选择,其中"Foo"和"Bar"显示为选项,当选择时分别具有值"1"和"2".

我还添加了一个重复的名称"Foo",其值为"3".这表明任何解决方案都不能依赖于唯一选项.

<input list="options" onchange="console.log(this.value)"/>
<datalist id="options">
  <option value="1">Foo</option>
  <option value="2">Bar</option>
  <option value="3">Foo</option>
</datalist>

<select onchange="console.log(this.value)">
  <option value=""></option>
  <option value="1">Foo</option>
  <option value="2">Bar</option>
  <option value="3">Foo</option>
</select>
Run Code Online (Sandbox Code Playgroud)

html html5 html-select html-datalist

11
推荐指数
2
解决办法
2万
查看次数

表格内的<div style display ="none">无效

我试图使用javascript切换div元素的显示,该div元素具有标签和文本框.这是代码片段

<table id="authenticationSetting" style="display: none">
<div id="authenticationOuterIdentityBlock" style="display: none;">
                <tr>

                    <td class="orionSummaryHeader"><orion:message key="policy.wifi.enterprise.authentication.outeridentitity"/>: </td>
                    <td class="orionSummaryColumn">
                        <orion:textbox id="authenticationOuterIdentity" size="30"/>
                    </td>

                </tr>
                </div>

            </table>
Run Code Online (Sandbox Code Playgroud)

但是在页面加载时div元素仍然显示,表格元素的显示切换工作正常.我不知道为什么这不起作用,可能是table元素的样式覆盖了div元素的样式.PS我仍然能够隐藏div中的元素而不是div本身.

html css dom

10
推荐指数
2
解决办法
15万
查看次数

云功能可以从云存储读取吗?

我可以找到的有关使用GCF + GCS的唯一文档是https://cloud.google.com/functions/docs/tutorials/storage。AFAICT只是在显示如何使用GCS事件触发GCF。

GCF依赖文档中,它仅提及节点模块。GCF代码能否从GCS存储桶中读取?是否只是需要一个知道如何与GCS通信的节点模块的情况?如果是,是否有任何示例?

google-cloud-storage google-cloud-platform google-cloud-functions

10
推荐指数
2
解决办法
3027
查看次数

是否有用于查询注释节点的DOM API?

我有一个带有调试注释的文档,如下所示:

<!--SERVER_TRACE {...}-->
Run Code Online (Sandbox Code Playgroud)

有没有办法查询DOM来访问这个节点?我正在寻找一个vanilla JavaScript解决方案,没有任何库的帮助.

我的第一个想法是深入首先搜索DOM并将找到的节点与节点类型值进行比较以进行评论Node.COMMENT_NODE.有没有更简单的方法?

html javascript dom

9
推荐指数
2
解决办法
1367
查看次数

MediaRecorder.stop()不会清除选项卡中的录制图标

我启动并停止MediaRecorder流.红色"录制"图标会在启动时显示在Chrome标签中,但不会在停止时消失.

图标如下所示:

在此输入图像描述

我的代码看起来像这样:

const mediaRecorder = new MediaRecorder(stream);
...
// Recording icon in the tab becomes visible.
mediaRecorder.start();
...
// Recording icon is still visible.
mediaRecorder.stop();
Run Code Online (Sandbox Code Playgroud)

我还mediaRecorder.onstop定义了一个处理程序.它不会返回任何内容或干扰事件对象.

在启动和停止MediaRecorder实例后清除选项卡的"录制"指示符的正确方法是什么?

javascript google-chrome web-mediarecorder web-audio-api

9
推荐指数
1
解决办法
1617
查看次数