我想基于我们加载的配置动态指定控制器.像这样的东西:
<div ng-controller="{{config.controllerNameString}}>
...
</div>
Run Code Online (Sandbox Code Playgroud)
我怎么做角度的?我认为这很容易,但我似乎找到了这样做的方法.
我有一个非常有趣的问题,我没有解释.
每隔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) 我很难搞清楚如何在我的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) 我正在扩展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)
还有很多其他人,我似乎无法匹配这种类型.
有没有人对如何解决这个错误有任何想法?你如何将一个婴儿车声明为数组对象?
我有一个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秒,这不是超级慢但不是非常快的以太.
我的问题是:如何针对此单个查询进一步优化我的表?
我试过以下的事情:
我已从表中删除所有无用的行以使其变小.我需要所有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) 为什么在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 ×3
angularjs ×2
codeigniter ×2
javascript ×2
apache ×1
extending ×1
googlebot ×1
karma-runner ×1
mongodb ×1
mysql ×1
unit-testing ×1