小编Geo*_*ith的帖子

jQuery追加一个元素数组

出于这个问题的目的,我们可以说我们需要append()1000个body元素对象.

你可以这样做:

for(x = 0; x < 1000; x++) {
    var element = $('<div>'+x+'</div>');
    $('body').append(element);
}
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是对我来说似乎效率低,因为AFAIK会导致1000次文件回流.更好的解决方案是:

var elements = [];
for(x = 0; x < 1000; x++) {
    var element = $('<div>'+x+'</div>');
    elements.push(element);
}
$('body').append(elements);
Run Code Online (Sandbox Code Playgroud)

然而,这不是一个理想的世界,这会引发错误Could not convert JavaScript argument arg 0 [nsIDOMDocumentFragment.appendChild].我明白append()无法处理数组.

我将如何使用jQuery(我知道DocumentFragment节点,但假设我需要在元素上使用其他jQuery函数.css()),一次向DOM添加一堆对象以提高性能?

javascript arrays performance jquery append

48
推荐指数
4
解决办法
9万
查看次数

我们可以从客户端获取哪些信息?

我正在尝试编译可通过javascript访问的信息列表,例如:

  • 地理位置
  • IP地址
  • 浏览器软件
  • 退出位置
  • 入口位置

我知道用户可以改变任何这些信息,并且它的可靠性纯粹与信任有关,但我仍然对从客户端挖掘的其他信息感兴趣.

javascript data-mining data-retrieval

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

PHP:从路径中删除文件名

说我有一条路径:images/alphabet/abc/23345.jpg

如何从路径中删除文件?所以我最终得到:images/aphabet/abc /

php

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

防止某些元素获得焦点

所以我有以下功能.它的作用是监听所有元素的焦点事件.如果该元素处于$mobileMenu$menuItems允许它,否则它将删除焦点:

var $body = $("body");
var $mobileMenu = $("#mobile-menu");
var $menuItems = $("#main-menu a");

$body.on("focus.spf", "*", function(e){
  e.stopPropagation();
  $this = $(this);

  // Prevent items from recieving focus and switching view
  if (!$this.is($mobileMenu) && !$this.is($menuItems)) {
    $this.blur();
  } else {
    console.log(this);
  }
})
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果现在不可聚焦的正常可聚焦元素先于我列出的任何白色元素,这会阻止用户专注于任何事情,因为它只是试图一遍又一遍地重新聚焦在同一个元素上.

有谁知道我怎么能告诉它而不是跳到下一个可聚焦的元素?

html javascript jquery accessibility

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

康威的生命游戏 - 超越网格

好吧,有很多"康威的生命游戏"问题,但这个问题非常具体.我将不得不首先向您抛出一堆代码,将其分解并告诉您问题所在.

所以这是迄今为止我的Conway的生命游戏实现,现在它仅限于调试控制台(JSfiddle - http://jsfiddle.net/georeith/C9Gyr/8/ - 启动它,打开你的控制台):

var utils = {};

/*
 * utils.extend()
 * - Extend initial object with all properties of following objects, objects later in the argument list take precedence.
 */
utils.extend = function(obj) {
  var args = Array.prototype.slice.call(arguments, 1);
  for (var i = args.length; i--;) {
    for (var prop in args[i]) {
      obj[prop] = args[i][prop];
    }
  }
  return obj;
}

/*
 * utils.defaults()
 * - Overwrite initial object with properties of following objects only if key is …
Run Code Online (Sandbox Code Playgroud)

javascript conways-game-of-life

15
推荐指数
1
解决办法
1268
查看次数

PHP:将变量设置为无穷大

我想知道我是否可以将变量设置为无穷大,如果不是,那么实现我的问题的最佳方法是什么.以下是我的功能:

public function seekValue($value, $column = null, $limit = null) {
  $this->connect('rb');
  $results = array();
  while (!feof($this->_pointer)) {
      $data = explode($this->_config->delimiter(), fgets($this->_pointer, 1024));
      if(!is_null($column)) {
          if ($data[$this->_config->columns($column, "string")->index()] == $value)
              array_push($results, $this->formatRow($data));
      } else {
          if (in_array($value, $data))
              array_push($results, $this->formatRow($data));
      }
  }
  $this->disconnect();
  switch (count($results)) {
      case 0;
          return false;
      case 1;
          return $results[0];
      default;
          return $results;
  }
}
Run Code Online (Sandbox Code Playgroud)

$limit = null在函数参数列表中设置,但是后来我想$limit在我的while循环中使用,因此while (!feof($this->_pointer) && count($results) < $limit)用户决定将整数传递给它.

如果是这种情况我可以这样做:

if (!is_int($limit)) {
  $limit = infinity; …
Run Code Online (Sandbox Code Playgroud)

php

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

gzip_proxied指令有哪些选项?

gzip_proxied指令允许下列选项(非详尽):


  • 如果响应头包含带有禁用缓存的值的"Expires"字段,则expired启用压缩;

  • 如果响应头包含带有"no-cache"参数的"Cache-Control"字段,则no-cache启用压缩;

  • 如果响应头包含带有"no-store"参数的"Cache-Control"字段,则no-store启用压缩;

  • 如果响应头包含带有"private"参数的"Cache-Control"字段,则private启用压缩;

  • 如果响应头不包含"Last-Modified"字段,则no_last_modified启用压缩;

  • 如果响应头不包含"ETag"字段,则no_etag启用压缩;

  • 如果请求标头包含"授权"字段,则auth启用压缩;

我看不出任何合理的理由来使用大多数这些选项.例如,为什么代理请求是否包含Authorization标题,或者Cache-Control: private影响我是否要gzip它?

鉴于Nginx的旧版本使用gzip压缩他们时,从响应中带ETag的,我可以看到一个用例no_etag:如果你没有Nginx的配置为您的gzip压缩响应的ETag,您可能希望通过对未压缩的响应一个ETag而不是在没有ETag的情况下生成压缩的ETag.

但是,我无法弄明白其他人.

每个选项的预期用例是什么?

gzip authorization nginx http-caching http-headers

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

PHP:致命错误:调用非对象上的成员函数

在这里得到一个非常奇怪的错误,我正在写一个flatfile数据库类,这一切都正常,直到我刷新,现在我不断得到这个消息:

致命错误:在第50行的/home/reithg/public_html/test/engine/class.database.php调用非对象上的成员函数name()

我打电话给班级如下:

<?php
ini_set('display_errors', '1');

require('engine/class.database.php');

$config = new Config("lessons", array('first', 'second', 'third', 'fourth'), "data/");
$db = new Database($config, true);

print("Querying DB for 'theta' no exclusions: <br />");
print_r($db->query('theta', NULL, NULL));

print("<p /> Querying DB for 'theta' in column 'second': <br />");
print_r($db->query('theta', 'second', NULL));

print("<p /> Querying DB for first two rows: <br />");
print_r($db->getRows(2));

print("<p /> Querying DB for last three rows: <br />");
print_r($db->getRows(3, true));

print("<p /> Cleaning data …
Run Code Online (Sandbox Code Playgroud)

php fatal-error

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

覆盖溢出:隐藏

我有一个包含很多子元素的父容器.由于动画原因(子元素滑入和滑出父元素)我已将其overflow属性设置为hidden.

这很有效,但有几个孩子我想要在父母的界限之外可见.

我该如何做到只有某些孩子在父母的界限之外可见?

html css overflow

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

Backbone.js:包含多个具有相同ID的模型的集合

我在Backbone中有一个合并的集合,其中包含照片和相册.

为了区分它们,我添加了type一个photo或两个字段album.当我填充集合时,我在Collection#model方法中创建了不同的模型

  model: (attrs, options) ->
    switch attrs.type
      when 'album' then new App.Models.Album(attrs, options)
      when 'photo' then new App.Models.Photo(attrs, options)
Run Code Online (Sandbox Code Playgroud)

现在我发现了一个奇怪的错误,即添加照片和具有相同ID的相册(假设2)会导致合并.

我在源代码中跟踪了这些 LOC.似乎它没有创建一个Backbone本身的分支是可以撤销的.我已经尝试过,但它也没有通过35次测试.

我想到了4种不同的方法,我不知道哪一种更好:

  1. 我可以为id添加前缀.让我们说吧photo_2.这会导致后端的更改以及前端的某些更改,从而无法访问服务器/photos/photo_2
  2. 我可以分叉Backbone并更改这些 LOC.
  3. 我可以创建两个单独的集合,但必须在视图中处理合并和排序(这会影响客户端性能并需要重写后端)
  4. 我可以从照片ID开始,比方说1000000.这将极大地降低已经上传具有给定ID的照片的给定用户也创建具有相同ID的相册的可能性.

javascript coffeescript backbone.js

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