小编can*_*era的帖子

HTML实体:何时使用十进制与十六进制

对于HTML实体何时使用十进制与十六进制表示法有一个很好的经验法则吗?

例如,非破坏连字符以十进制形式写入,‑并以十六进制形式写入‑.

这个答案说十六进制用于Unicode; 这是否意味着如果您<meta charset="utf-8">在文档中使用标记,则应使用hex <head>

偶尔,我会注意到实体字符被错误地呈现而不是它们代表的实体 - 例如,&amp;在电子邮件主题行或RSS标题中出现(而不是&符号).十六进制或十进制是否更好以避免这种情况?

最后一个考虑因素:使用十六进制或十进制可以影响角色的渲染清晰度(清晰度)吗?

html character-encoding html-entities

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

反应:将道具传递给后代

是否有推荐的模式在React中将道具传递给后代组件?

下面,我将道具callback传递给子组件:

Master = React.createClass({
  render: function() {
    return (
      <div>
        <ListComp items={this.props.items} callback={this.handleClick} />
      </div>
    );
  }
});

ListComp = React.createClass({
  render: function() {

    this.props.items.forEach(function(item) {
      items.push(<ItemView item={item} callback={this.props.callback} />);
    }, this);

    return (
      <ul>{items}</ul>
    );
  }
});
Run Code Online (Sandbox Code Playgroud)

然后callback道具传递给后代组件:

ItemComp = React.createClass({
  render: function() {
    return (
      <li><a onClick={this.handleClick} href="#">Link</a></li>
    );
  },

  handleClick: function(e) {
    e.preventDefault();
    this.props.callback();
  }
});
Run Code Online (Sandbox Code Playgroud)

将支柱两次传递给这样是正确的还是我应该以某种方式引用它的继承?

transferPropsTo在docs中看到了一个方法,并且通过记录它看起来我可以callback从后代通过this.props.__owner__.props但是那些双重下划线让我认为我不应该.

reactjs

24
推荐指数
1
解决办法
1万
查看次数

HTML Purifier的安全PHP编程不能做什么?

我正在研究PHP安全最佳实践,特别是HTML Purifier库.

我喜欢使用第三方库来帮助加强我网站的安全性,但我对一些事情感到困惑......

  1. 首先,一个普遍的问题...... HTML Purifier的做法是什么,实践安全的PHP编程不能?

  2. 如果我正在使用HTML Purifier,这是否意味着我可以跳过常见的安全措施,例如使用PHP函数来过滤输入和转义输出?

  3. 这个问题的回复评论之一似乎表明只有允许HTML标签的元素(例如WYSIWYG编辑器)才需要HTML Purifier.它是否正确?

  4. 有没有人注意到使用HTML Purifier的性能滞后?本文使性能影响值得考虑.

  5. 是否有关于将HTML Purifier与非框架PHP应用程序集成的最新教程?我发现的一切都是旧的特定于框架的.

只是为了确认我已经完成了我的作业才问这个......

  • 这个问题与我的问题基本相同,但唯一的反应似乎只列出了提问者忘记提及的另一个最佳实践

  • 这个"丰富"的问题是关于HTML Purifier和HTML5的一个很好的资源,但它假设了基础知识

  • HTML Purifier网站上的这个比较页面更多地与其他过滤器进行比较

php security htmlpurifier

20
推荐指数
1
解决办法
6524
查看次数

WAI-ARIA旋转木马的角色(又名滑块,幻灯片,画廊)

什么WAI-ARIA的角色应该用于旋转木马,类似下面?

USA.gov轮播示例

笔记:

  • 我熟悉滑块角色,但这指的是不同类型的小部件.
  • 这个例子来自USA.gov,我在使用中看到的唯一一个与旋转木马有关的咏叹调角色是aria-live在单个幻灯片上.

javascript html5 accessibility wai-aria

15
推荐指数
4
解决办法
6335
查看次数

渲染优化和兄弟选择器

WebKit浏览器具有内置的样式渲染优化技术,"甚至不必匹配页面上大约60%元素的样式."

但是,如果"在样式表中的任何地方遇到任何兄弟选择器......那么优化将完全关闭整个页面...这包括+选择器和选择器,如:first-child:last-child."

有谁知道禁用此优化的选择器类型的完整列表?

-

更多信息

  • Tali Garsiel关于浏览器内部的研究讨论了优化:浏览器如何工作.

  • 以下是来自Dave Hyatt的兄弟选择器的完整报价,他显然是在编写浏览器代码:"必须没有使用兄弟选择器.当遇到任何兄弟选择器时,WebCore会抛出一个全局开关,并禁用整个文档的样式共享当它们存在时.这包括+选择器和选择器,如:first-child和:last-child."

  • 这句话似乎来自于2005年凯悦写的一篇文章.下面他将更详细地讨论它(与之前相同的来源):

    "WebCore(在即将推出的Safari版本中)有一个非常酷的优化,我提出来避免甚至不得不计算应用于元素的声明集.这种优化在实践中甚至不必匹配页面上大约60%元素的样式.优化背后的想法是识别页面中的两个元素何时出现通过DOM(和其他状态)检查获得相同的样式,并尽可能简单地在这两个元素之间共享前端样式信息."

  • Nate Koechley的这篇文章更详细地讨论了算法.他总结道:

    "在网络开发中,通常有6种不同的相似方式来做同样的事情.一个优秀的网络开发人员不断选择最好的几乎无法区分的路径.这些来自凯悦的内部提示让我们更完整了解浏览器的内容,并帮助我们选择最佳方法."

  • Hyatt还讨论了此W3C邮件列表存档中的优化问题

  • 在Ryan Kinal 的Stack聊天中也简要介绍了一下:"哇.哇哇.我永远不会再使用另一个兄弟选择器了."

我特别感兴趣的是:

  • 子选择器是否也关闭优化

  • Trident/IE是否使用任何类似的优化

  • 是否存在任何测试表明它对渲染性能有多大差异

css performance webkit internals

14
推荐指数
1
解决办法
564
查看次数

在initConfig()中访问Grunt配置数据

如何访问Grunt配置属性siteproject.json在config属性值指定的路径上读取文件?

grunt.registerTask('build', function(target) {
  grunt.config('site', target);
  grunt.task.run('foo:dist', 'bar:dist');
});

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  site: grunt.file.readJSON('./sites/' + grunt.config('site') + '/project.json')
});
Run Code Online (Sandbox Code Playgroud)

咕噜-CLI:

grunt build:sitename

>> Error: Unable to read "./sites/undefined/project.json"
Run Code Online (Sandbox Code Playgroud)

使用文档中的示例,我也试过这个:

grunt.registerTask('global', 'site', function(prop, value) {
  global[prop] = val;
});

grunt.registerTask('build', ['foo:dist', 'bar:dist']);

grunt.initConfig({
  pkg: grunt.file.readJSON('package.json'),
  site: grunt.file.readJSON('./sites/' + global.site + '/project.json')
});
Run Code Online (Sandbox Code Playgroud)

咕噜-CLI:

grunt global:site:sitename

>> Error: Unable to read "./sites/undefined/project.json"
Run Code Online (Sandbox Code Playgroud)

更新:

使用@FelixKling答案作为指导,我取得了一些进展:

grunt.registerTask('build', function(target) {
  grunt.config.set('target', target);
  grunt.config.set('site', grunt.file.readJSON('./sites/' + grunt.config.get('target') + '/project.json')); …
Run Code Online (Sandbox Code Playgroud)

javascript gruntjs

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

ES6导出覆盖功能

如何导出此覆盖功能,以便导入模块可以检查是否已调用该函数?

// util.js
export function isPageload() {
  return (!!(isPageload = function() { return false; }));
}
Run Code Online (Sandbox Code Playgroud)

当我用Babel编译它时,我收到此错误:

Uncaught TypeError: (0 , _util2.default) is not a function
Run Code Online (Sandbox Code Playgroud)

这是ES5的等价物:

var isPageload = function() {
  return (!!(isPageload = function() { return false; }));
}

console.log(isPageload()); // true
console.log(isPageload()); // false
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

Yeoman:LiveReload vs. Yeoman Watch

我是第一次尝试Yeoman Server,看到它提供了一个原生的手表工具作为LiveReload的后备.以下是文档解释回退的方法:

"[Yeoman Server]会自动启动该yeoman watch过程,因此对任何应用程序文件的更改都会导致浏览器通过LiveReload进行刷新.如果您没有在本地安装LiveReload,则会使用后备重新加载过程."

到目前为止,回退过程工作正常,我喜欢它不需要在浏览器/菜单栏中安装任何东西.

有没有人和Yeoman一起试过两种手表工具?如果您"升级"到LiveReload,工作流程有何不同以及您会获得哪些附加功能?

更新:对API的快速检查显示,Yeoman的实时重新加载功能实际上是LiveReload.他们是同一个人.它没有浏览器扩展的原因是因为他们使用的是LiveReload的snipvr代码片段.有可能通过LiveReload GUI可以访问一些其他功能,也许可以用于移动设备测试,但功能更可能是相同的.

javascript gruntjs yeoman livereload

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

Browserify:嵌套/条件要求

在下面的CommonJS的/ Browserify模块,我怎样才能避免导入既foobar每一次-而不是导入仅仅是基于条件所需要的一个init()

var Foo = require('foo'),
    Bar = require('bar'),

Component = function(config) {
  this.type = config.type;
  this.init();
};

Component.prototype = {

  init: function() {
    var instance = null;

    switch (this.type) {
      case ('foo'):
        instance = new Foo(...);
        break;
      case ('bar'):
        instance = new Bar(...);
        break;
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

javascript commonjs node.js browserify

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

禁用/隐藏"下载React DevTools ......"

如何完全禁用或隐藏"持久"控制台消息:Download the React DevTools for a better development experience在开发中?

reactjs

10
推荐指数
3
解决办法
4463
查看次数