几个月前我有这样的问题.现在为了隔离问题,我尝试了一种新的方法.我把一个空文件放到我的服务器上.
文件名是"foobar.php".其内容如下:
<?php
echo "hello world";
Run Code Online (Sandbox Code Playgroud)
但是当我尝试进入example.com/foobar.php时,我明白了
DNS 203毫秒
连接3.33秒
发送0毫秒
到第一个字节的时间17.35秒
接收1毫秒总加载时间20.88秒
然后我把另一个名为"foobar.txt"的文件.其内容如下:
hello world<br/>
Run Code Online (Sandbox Code Playgroud)
foobar.txt的加载时间约为0.2秒.
这个网站是在共享主机内,所以我无法获得root Linux访问权限.我试图找出是什么让我的网站变慢.
MaxClients 300
MaxRequestsPerChild 4000
ThreadsPerChild 25
新编辑: 我和我的托管公司谈过.并告诉他们"foobar.php"几乎在20秒内打开.虽然该文件根本没有代码.他们告诉我他们把"foobar.php"放到我们使用同一台服务器的其他网站上.我也试过"othersite.com/foobar.php".它立刻打开了.但"mysite.com/foobar.php"几乎在15秒内开启.什么会造成这种行为?我们对其他网站使用相同的PHP配置,但它们会立即打开..可以是因为我的.htaccess规则吗?还是其他的事情?
新Edit2: 我的提供商告诉我服务器内没有"apd.so"文件.所以我好像不能使用APD.
我应该寻找什么才能找到瓶颈?
什么会限制我的网站?
附加数据:来自phpinfo,我得到了这个:
'./configure'' - prefix =/usr/local/lsws/lsphp5'' - build = x86_64-redhat-linux-gnu'' - host = x86_64-redhat-linux-gnu'' - target = x86_64-redhat-linux-gnu'' - sysconfdir =/etc'' - datadir =/usr/share'' - includenid =/usr/include'' - libdir =/usr/lib64'' - libdcdir =/usr/libexec'' …
几个小时我的网站服务器负载太大.
我应该将哪个HTTP状态代码发送到访问我网站的Googlebot?
" 269 Call Back Later "是否适用于此案例,或者503服务不可用或您还有其他建议吗?
我们需要在Cakephp 3中阅读Cakephp 2用户cookie.但似乎在更新期间,CakeCookie标签已从cookie中删除.所以每个Cakephp cookie都是分开的.关于这里,Cakephp 3可以读取旧的cookie,如果它们是用AES编写的.但在旧的cakephp中,默认选项是密码,我们的cookie是用密码编写的.所以我们现在不能读旧饼干.
可以选择在Cakephp 2中读取旧cookie并使用AES更新它们.但是当我们更新到Cakephp 3时,会有用户拥有Cakephp 2 cookie.所以我们需要在Cakephp 3中查看这个.
我们计划在cakephp 3中使用密码读取旧cookie,并将其值写入新cookie.我们使用了安全密码方法的代码,并创建了以下代码.
问题是,这段代码适用于字符串,但它在一些嵌套数组上失败了.问题可能是加号或任何其他编码问题.有时候它有效,有时则不然.
我分享了我们的代码来展示我们的流程.您可以提出另一种转换旧cookie的方法.
if (isset($_COOKIE['CakeCookie'])) {
if (is_array($_COOKIE['CakeCookie'])) {
foreach ($_COOKIE['CakeCookie'] as $key => $value) {
$valueDecr=$this->decryptSaltedData($value);
$this->Cookie->configKey($key, ['expires' => '+60 days']);
$this->Cookie->write($key, $valueDecr);
$this->Cookie->delete("CakeCookie[$key]");
unset($_COOKIE['CakeCookie'][$key]);
setcookie("CakeCookie[$key]", "aaa", time()-3600, '/');
setcookie("CakeCookie[$key]", "aaa", time()-3600, '/', '.example.com');
}
}
}
public function decryptSaltedData($data) {
$data2 = substr($data, 8);
$text = base64_decode($data2);
$key = Security::salt();
$cipherSeed='45454545454545454545';
srand($cipherSeed);
$out = '';
$keyLength = strlen($key);
for ($i = 0, …Run Code Online (Sandbox Code Playgroud) 在我的崩溃日志中,我看到以下错误:
java.lang.IllegalStateException eglMakeCurrent failed EGL_BAD_ALLOC android.view.HardwareRenderer GlRenderer.createSurface HardwareRenderer.java
at android.view.HardwareRenderer$GlRenderer.invalidate(HardwareRenderer.java:1328)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1921)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1234)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6467)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:803)
at android.view.Choreographer.doCallbacks(Choreographer.java:603)
at android.view.Choreographer.doFrame(Choreographer.java:573)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:789)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)
我得到GT I9500 - Android 4.4.2用户的这次崩溃.原因是什么以及如何隔离问题?
(类似:在活动之间通过意图传递变量的问题 eglSwapBuffers失败:EGL_BAD_ALLOC AndEngine Android)
我读到了这个,这个和这个,但我认为我的情况有所不同.每次进行AJAX调用时,我都不需要刷新广告.
我有一个页面叫它"mypage.php".当页面打开时,我将Adsense广告加载到第一个div中.我的第二个空是空的.
在DOM完全加载后,我做了一个AJAX帖子.并将结果放入"lower_content"div中.这会破坏Adsense TOS吗?
<body>
<div id="adSense_content>
<script> adsense script </script>
</div>
<div id="lower_content">
empty in start
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
我的js文件:
$(document).ready(function() {
$.ajax({
type: "POST",
url: "/getit",
success: function(data) {
$("#lower_content").html(data);
}
});
}
Run Code Online (Sandbox Code Playgroud)
注意:为什么我在页面打开时不加载第二个内容?因为AJAX在6-7秒内回复.当服务器负载很高时,甚至会在10-15秒内响应.不要让访问者等待空白页面,甚至从页面反弹.我在开始时向访客显示布局,并在AJAX呼叫的响应到来时加载内容.
编辑:将广告投放到空白页面是Adsense TOS.但是我加载表格数据时提到的页面是空的.使用AJAX加载完整表后,页面将加载内容.但广告是在加载html页面时放置的.
我想为StrokesPlus创建一个可以在 Google Chrome 窗口之间切换的手势。当然用Alt+Tab切换是可以的,但是我不想看到其他正在运行的程序。
似乎在 Mac OS 中存在 cmd + 反引号快捷方式。但是我找不到 Windows 等效的切换快捷方式。
这个解决方案适用于一个按钮的情况:是否可以使用div作为Twitter的Popover的内容
但在我的页面中,我有一堆弹出窗口(比如说50-100).
所以我需要修改这个解决方案.
这是wa @jävi的解决方案:
$(document).ready(function(){
$('.danger').popover({
html : true,
content: function() {
return $('#popover_content_wrapper').html();
}
});
});
Run Code Online (Sandbox Code Playgroud)
我的每个按钮都有自己的ID.
<a class='danger' data-placement='above' title="Popover Title" href='#'>Click</a>
<div id="popover_div1" style="display: none">
<div>This is your div content</div>
</div>
<a class='danger' data-placement='above' title="Popover Title" href='#'>Click</a>
<div id="popover_div2" style="display: none">
<div>This is your div content</div>
</div>
Run Code Online (Sandbox Code Playgroud)
那么如何重写这个javascript代码片段来覆盖我的所有按钮呢?
我有这个文字:
$text = "Ba?ka, küskün otomobil kaçt? buraya küskün otomobil neden kaçt?
kaçt? buraya, oraya KISMEN @here #there J.J.Johanson hep.
Danny:Where is mom? I don't know! Café est weiß for 2 €uros.
My 2nd nickname is mike18.";
Run Code Online (Sandbox Code Playgroud)
最近我用这个.
$a1= array_count_values(str_word_count($text, 1, 'ÇçÖö???I???Üü@#é߀1234567890'));
arsort($a1);
Run Code Online (Sandbox Code Playgroud)
您可以查看这个小提琴:http:
//ideone.com/oVUGYa
但是这个解决方案并不能解决所有UTF8问题.我不能将整个UTF8集写入str_word_count作为参数.
所以我创造了这个:
$wordsArray = explode(" ",$text);
foreach ($wordsArray as $k => $w) {
$wordsArray[$k] = str_replace(array(",","."),"",$w);
}
$wordsArray2 = array_count_values($wordsArray);
arsort($wordsArray2);
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
Array (
[kaçt?] => 3
[küskün] => 2
[buraya] …Run Code Online (Sandbox Code Playgroud) 目前我使用CakePHP 2.6.8.我想迁移到CakePHP 3. Intallation指南建议使用Composer.但是作曲家没有完成所有工作,文档也不清楚.所以我需要一步一步的指导.
当前输入是2.x目录结构:https:
//github.com/cakephp/cakephp/tree/2.6.8
基本上应该为版本3更改哪些文件和文件夹?
例如这里和这里的lib/Cake文件.我们如何加入他们? https://github.com/cakephp/cakephp/tree/3.0.3
https://github.com/cakephp/app/tree/3.0.3
cakephp/upgrade工具使大多数命名空间工作并更改已弃用的类和方法.但它没有将适当的文件夹放到新位置.这里有一个文件夹结构,但目前还不清楚lib/Cake和app文件夹在哪里.例如,旧的lib/Cake文件夹移动到Vendors/cakephp文件夹.
应记录所有安装过程.Composer可用于转换旧控制器,视图等文件.但是你知道,升级工具没有做出所有必要的步骤.(例如https://github.com/cakephp/upgrade/issues/83)用户应手动更改某些文件夹结构)
在我们的CakePHP 3应用程序中,我们发现了不同的行为.我们确信它在CakePHP 2中运行良好,所以我想在新版本中有些变化.
当用户访问此url:时/b2controller/myMethod,这些方法运行:
AppController::beforeFilter()
BController::beforeFilter()
B2Controller::beforeFilter()
B2Controller::myMethod()
B2Controller::myMethod2()
Run Code Online (Sandbox Code Playgroud)
然后用户被重定向到此URL /ccontroller/myMethod10/
但我们需要这个:
当用户访问
/b2controller/myMethod和$isOk条件true,然后重定向用户/ccontroller/myMethod10/,而不运行BController::beforeFilter(),B2Controller::beforeFilter(),B2Controller::myMethod()和BController::MyMethod2().
我们的最小代码是这样的:
class AppController {
function beforeFilter(Event $event) {
// set $isOk variable
if ($isOk == TRUE) {
return $this->redirect('/ccontroller/myMethod10/');
}
$aa=1;
$ab=2;
}
}
class BController extends AppController {
function beforeFilter(Event $event) {
parent::beforeFilter($event);
$a=1;
$b=2;
}
function myOtherMethod() {
myOtherMethod2();
}
function myOtherMethod2() {
...
...
}
} …Run Code Online (Sandbox Code Playgroud)