小编Ron*_*per的帖子

动态NG控制器名称

我想基于我们加载的配置动态指定控制器.像这样的东西:

<div ng-controller="{{config.controllerNameString}}>
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

我怎么做角度的?我认为这很容易,但我似乎找到了这样做的方法.

javascript angularjs angularjs-directive

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

Googlebot无法解释的32个字符的十六进制附加字符串,每天导致超过20,000个404错误

我有一个非常有趣的问题,我没有解释.

每隔2到6秒googlebot(我查了googlebots IP,它真实的东西[使用主机IP ])请求我们网站上的页面(运行:php,apache,mongodb)不存在(404s).没有其他机器人或人类曾经请求过这样的页面!只是googlebot.

请求每个看起来像这样:

/ 2de4f853c2853807b2e72387aa8928a4

/ ea5700c343d1a9798bc554af7c1a330e

/ e5aafa102d54ba7517703336846cc019

我们的代码不使用任何32个char字符串,也没有类似我们网站内部或外部的链接.我们使用codeigniter,所以起初我以为它是默认的session_id,我已经检查过,但事实并非如此.

有没有人见过这样的东西?我们的网站在某些页面上使用history.push,这可能导致它吗?只是一个想法.

示例请求的原始数据:

array (
  'date' => '2012-12-01',
  'time' => '10:01:33 PM',
  'additional_data' => 
    array (
      'server_vars' => 
        array (
          'REDIRECT_STATUS' => '200',
          'HTTP_HOST' => 'www.xxxxxxx.com',
          'HTTP_ACCEPT' => '*/*',
          'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
          'HTTP_FROM' => 'googlebot(at)googlebot.com',
          'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
          'HTTP_X_FORWARDED_FOR' => 'xxxxxxx',
          'HTTP_X_FORWARDED_PORT' => '80',
          'HTTP_X_FORWARDED_PROTO' => 'http',
          'HTTP_CONNECTION' => 'keep-alive',
          'PATH' => '/sbin:/usr/sbin:/bin:/usr/bin:/home/ec2-user/ec2/bin',
          'SERVER_SIGNATURE' => '<address>Apache/2.2.22 (Amazon) Server at www.xxxxxxx.com Port 80</address>
',
          'SERVER_SOFTWARE' …
Run Code Online (Sandbox Code Playgroud)

php apache googlebot codeigniter

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

单元测试一个指令,其模板都是带有脚本标签的文件

我很难搞清楚如何在我的Karma单元测试中包含我的指令模板(这些模板都在不同脚本标签中的一个文件中).

我得到的错误:

PhantomJS 1.9 (Linux) ERROR
 SyntaxError: Parse error
 at /var/www/html/tweak/core/global/views/js/modules/datable/templates.html:1
PhantomJS 1.9 (Linux): Executed 0 of 0 ERROR (0.313 secs / 0 secs)
Run Code Online (Sandbox Code Playgroud)

以下是代码的相关部分:

我的指示肉:

return {
  scope       : {
    columns : '=',
    config  : '='
  },
  templateUrl : 'datable/table.html',
  restrict    : 'E',
  controller  : 'datableCtrl',
  link        : linkingFunction
};
Run Code Online (Sandbox Code Playgroud)

我的模板文件:

<script type="text/ng-template" id="datable/table.html">
  <!-- data rows -->
  <tr
    ng-repeat="row in rows track by $id($index)"
    class="datable-row"
    ng-hide="loading">

    <td
      ng-repeat="column in columns track by $id($index)"
      ng-class="{'edit-on': editMode == 'on'}"
      class="{{column.classes.join(' …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing angularjs karma-runner

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

Class :: save()的声明应该与Class :: save()的声明兼容

我正在扩展MongoCollection类,我收到了这条消息.

Db\Mongo\Collection :: save()的声明应该与MongoCollection :: save()的声明兼容

据我所知,这通常是一个婴儿车宣言未命中赛.

Php.net说,婴儿车是:

public mixed save(array | object $ a [,array $ options = array()])

我已尝试以下所有方法来解决此问题:

public function save(array &$a, array $options = array())
public function save($a, array $options = array())
public function save(&$a, array $options = array())
public function save($a, $options = array())
public function save($a = array(), $options = array())
Run Code Online (Sandbox Code Playgroud)

还有很多其他人,我似乎无法匹配这种类型.

有没有人对如何解决这个错误有任何想法?你如何将一个婴儿车声明为数组对象?

php extending mongodb

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

如何针对单个查询进一步优化此MySQL表

我有一个InnoDB MySql Geo ID表,有大约100万行.表结构是这样的:

CREATE TABLE `geoid` (
   `start_ip` int(11) NOT NULL,
   `end_ip` int(11) NOT NULL,
   `city` varchar(64) NOT NULL,
   `region` char(2) NOT NULL,
   PRIMARY KEY (`start_ip`,`end_ip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

将只对该表运行一个类型查询:

SELECT city, region FROM geoid WHERE 1259650516 BETWEEN start_ip AND end_ip
Run Code Online (Sandbox Code Playgroud)

这个查询需要大约〜.4228秒,这不是超级慢但不是非常快的以太.

我的问题是:如何针对此单个查询进一步优化我的表?

我试过以下的事情:

  1. 将存储引擎更改为MyISAM,这使得查询大约需要1.9秒.
  2. 使用WHERE语句'WHERE geoid.start_ip <= 1259650516 AND 1259650516 <= geoid.end_ip'.但这需要大约0.5秒来执行而不是.4 ish.

我已从表中删除所有无用的行以使其变小.我需要所有100万行.

更新/解决方案

感谢下面的文章,这是我为解决这个问题所做的工作.(只是为了其他感兴趣的人完成这个答案)

我在上表中添加了一个新列:

ALTER TABLE `geoid` ADD `geoip` LINESTRING NOT NULL
Run Code Online (Sandbox Code Playgroud)

然后,我使用start_ip和end_ip中的地理数据填充新列

GeomFromText(CONCAT('LINESTRING(', start_ip, ' -1, ', end_ip, ' 1)'))
Run Code Online (Sandbox Code Playgroud)

然后,我在新列上创建了SPATIAL INDEX

CREATE …
Run Code Online (Sandbox Code Playgroud)

mysql

5
推荐指数
1
解决办法
311
查看次数

为什么在CodeIgniter中根本调用sess_update?

为什么在CodeIgniter中需要更新会话ID.我知道您可以控制在配置中更新会话ID的频率.但为什么他们每5分钟更改一次会话的ID(默认情况下)?

为什么会话无法创建一次,并且在会话到期之前使用相同的ID?

更新会话的功能如下:

/**
 * Update an existing session
 *
 * @access  public
 * @return  void
 */
function sess_update()
{
    // We only update the session every five minutes by default
    if (($this->userdata['last_activity'] + $this->sess_time_to_update) >= $this->now)
    {
        return;
    }

    // Save the old session id so we know which record to
    // update in the database if we need it
    $old_sessid = $this->userdata['session_id'];
    $new_sessid = '';
    while (strlen($new_sessid) < 32)
    {
        $new_sessid .= mt_rand(0, mt_getrandmax());
    }

    // To make …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

5
推荐指数
1
解决办法
1262
查看次数