小编Chr*_*isV的帖子

更正字体MIME类型的Apache AddType指令

我使用@ font-face作为嵌入字体(感谢Paul Irish).在尝试修复Chrome关于woff字体的错误MIME类型的警告时,我发现了大量相互矛盾的建议.

每个人似乎都同意.eot字体(对于IE 6-8?)应该使用

AddType application/vnd.ms-fontobject .eot
Run Code Online (Sandbox Code Playgroud)

对于.ttf字体(较旧的非IE浏览器?)我见过

AddType application/x-font-ttf        .ttf
AddType application/octet-stream      .ttf
AddType font/truetype                 .ttf
AddType font/ttf                      .ttf
Run Code Online (Sandbox Code Playgroud)

对于.woff字体(新标准?)我见过

AddType application/font-wof          .woff
AddType application/x-font-woff       .woff
AddType application/x-woff            .woff
Run Code Online (Sandbox Code Playgroud)

我理解woff 的正确MIME类型是application/font-woff,但是在标准正式之前,Chrome会理解application/x-font-woff.

我知道我已经半问了一下我的问题,但问题是:是否有关于字体应该使用什么MIME类型的权威指导或进一步的建议?

更新(如果它对任何其他人有任何帮助):因为似乎没有任何权威,我已经决定在我的.htaccess中使用以下字体MIME类型(这至少让Chrome开心):

AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf        .ttf
AddType application/x-font-woff       .woff
Run Code Online (Sandbox Code Playgroud)

apache fonts mime woff eot

42
推荐指数
3
解决办法
5万
查看次数

如何在没有async = false的情况下执行jQuery阻止AJAX调用?

我有一个页面在继续下一页之前对电子邮件进行AJAX验证,使用HTML5 setCustomValidity()方法[使用旧浏览器的webshims库].

为此,我在$ .ajax()调用中将async选项设置为false以使其同步,阻止页面等待AJAX​​响应,否则表单在ajax调用返回之前提交,从而使验证无效.

<script>
  function validateEmailRegistered(input) {
    if (input.setCustomValidity === undefined) return;
    var err = 'Email address not found';
    $.ajax({
      url: 'email-is-registered.php', 
      data: { email: input.value }, 
      async: false, 
      success: function(data) {
        var ok = data=='true';
        input.setCustomValidity(ok ? '' : err)
      }
    });
  }
</script>

<form method="get" action="nextpage.php">
  <input name="email" id="email" type="email" required
    onChange="validateEmailRegistered(this)">
  <button type="submit">go</button>
<form>
Run Code Online (Sandbox Code Playgroud)

我发现从jQuery 1.8开始就不推荐使用async选项.

如果没有async选项,如何实现此阻止操作?

validation ajax jquery html5 asynchronous

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

在单元素id-selector上使用jQuery .each()方法

在Nemikor博客中解释jQuery对话框,ScottGonzález在id选择器上使用.each()方法:

$('#page-help').each(function() {
  var dialog = $('<div></div>')
    .load($(this).attr('href'))
    .dialog( ... );
  $(this).click(function() { ... });
});
Run Code Online (Sandbox Code Playgroud)

由于id选择器只能返回单个元素,因此使用.each()方法的目的是什么?(通常用于迭代匹配的元素).

难道只是没有更简单的方法来执行'page-help'元素的功能,该元素提供对$(this)的访问?

jquery

6
推荐指数
1
解决办法
1973
查看次数

MySQL中的Unicode(十六进制)字符文字

有没有办法在MySQL中指定Unicode字符文字?

我想用Ascii字符替换Unicode字符,如下所示:

Update MyTbl Set MyFld = Replace(MyFld, "?", "y")
Run Code Online (Sandbox Code Playgroud)

但是我使用的是大多数字体都没有的更加模糊的字符,所以我希望能够使用Unicode字符文字,比如

Update MyTbl Set MyFld = Replace(MyFld, "\u1e8f", "y")
Run Code Online (Sandbox Code Playgroud)

这个SQL语句是从PHP脚本调用的 - 第一个表单不仅不可读,而且实际上不起作用!

mysql unicode literals unicode-literals

6
推荐指数
2
解决办法
6405
查看次数

使用promises在Node.js + Express中处理错误

使用Node.js + Express(4)+ Mongoose(使用promises而不是回调),我无法理清如何整理我的错误处理.

我得到的(相当简化)是:

app.get('/xxx/:id', function(request, response) {
    Xxx.findById(request.params.id).exec()
        .then(function(xxx) {
            if (xxx == null) throw Error('Xxx '+request.params.id+' not found');
            response.send('Found xxx '+request.params.id);
        })
        .then(null, function(error) { // promise rejected
            switch (error.name) {
                case 'Error':
                    response.status(404).send(error.message); // xxx not found
                    break;
                case 'CastError':
                    response.status(404).send('Invalid id '+request.params.id);
                    break;
                default:
                    response.status(500).send(error.message);
                    break;
            }
        });
});
Run Code Online (Sandbox Code Playgroud)

在这里,在'promise rejected'部分的开关中,Error是我为自己找不到的潜在有效id而犯的错误,CastError是Mongoose为无效的id抛出的Cast to ObjectId失败,500错误可以为例如,通过键入错误被触发throw Error()作为throw Err()(导致的ReferenceError:未定义ERR).

但是像这样,我的每条路线都有这个非常笨拙的开关来处理不同的错误.

如何集中处理错误?交换机可以以某种方式隐藏在一些中间件中吗?

(我确实希望我可以throw error;在'承诺拒绝'块中重新使用,但我无法使其工作).

error-handling mongoose node.js promise express

4
推荐指数
1
解决办法
6216
查看次数

使用XSLT排序时忽略'A'和'The'

我希望列出一个列表,忽略任何初始明确/不定的文章'the'和'a'.例如:

  • 错误的喜剧
  • 村庄
  • 仲夏夜之梦
  • 第十二夜
  • 冬天的故事

我想也许在XSLT 2.0中,这可以通过以下方式实现:

<xsl:template match="/">
  <xsl:for-each select="play"/>
    <xsl:sort select="if (starts-with(title, 'A ')) then substring(title, 2) else
                      if (starts-with(title, 'The ')) then substring(title, 4) else title"/>
    <p><xsl:value-of select="title"/></p>
  </xsl:for-each>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

但是,我想使用浏览器内处理,因此必须使用XSLT 1.0.有没有办法在XLST 1.0中实现这一目标?

sorting xslt xslt-1.0

3
推荐指数
1
解决办法
378
查看次数