我试图弄清楚我的服务器端代码的效率.
使用microtime(true)测量速度,我能够计算我的脚本运行所花费的时间.
我得到的平均速度.3来.5秒.这些脚本执行许多数据库查询以向用户返回不同的值.
什么被认为是将在网上运行的PHP脚本的有效执行时间?
我知道这完全取决于正在做什么,但只要将其视为从数据库读取并将值返回给用户的标准脚本.我看看谷歌,看到他们在.15几秒钟内搜索互联网,我觉得我的脚本是垃圾.
在Javascript中,如何获得一个月内的周数?我似乎无法在任何地方找到代码.
我需要这个能够知道给定月份需要多少行.
更具体地说,我希望一周中至少有一天的周数(一周定义为星期日开始,星期六结束).
所以,对于这样的事情,我想知道它有5个星期:
S M T W R F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我正在通过ExpressJS创建一个NodeJS Web应用程序.我有以下两条路线(其中包括):
app.get('/user/reset/verify', function(req, res) {
console.log("Executing verification index.");
res.render("verify/index");
});
app.get('/user/reset/verify/:email/:token', function(req, res) {
console.log("Executing verification change.");
res.render("verify/change");
});
Run Code Online (Sandbox Code Playgroud)
当我进入验证索引页面时,我看到"执行验证索引".在控制台上打印一次.但是,当我转到验证更改页面时,我会看到"执行验证更改".在控制台上打印两次.
我注意到这是我的应用程序中的路线趋势.包含参数的路由始终执行两次,而没有参数的路由仅(正确)执行一次.
为什么带参数的路由被执行两次?
正在呈现的视图仅包含简单的HTML - 不会导致对页面的另一个请求.另外,我从Chrome浏览器发出这些请求.
平台/版本:
我最近将支付处理转换为Stripe.我现在需要为财务部门创建一个报告,显示指定日期范围内的事务汇总.我已经开始创建一个简单的PHP网页(并使用Stripe PHP库),它将提供以下摘要:
我在查找如何使用Stripe正确查询费用时遇到了一些麻烦.
我知道我可以收取费用:
$charges = Stripe_Charge::all();
Run Code Online (Sandbox Code Playgroud)
从返回的收费集中,我可以计算报告中所需的摘要信息.但是,这只会给我带来最多100笔费用,而且我不知道如何在指定的日期范围内退还费用.
我希望更有经验的Stripe开发人员能够指出构建我需要的报告的正确方法.
如何在指定日期范围内退回所有费用?
有没有更好的方法从Stripe获取此摘要信息?
在Mac Mojave 10.14.2上的Safari 12.0.2和Chrome 71.0.3578.98中,设置font-size使用rem单位时,实际大小不会低于此值9px.
看这个例子:
https://codepen.io/stephenjwatkins/pen/OrbGxL
我的浏览器的字体大小设置为默认值(16px),最小字体大小设置为6px:
设置text-size-adjust为none不会影响问题.Firefox正确渲染大小.
我发现解决问题的唯一方法是设置font-size: 0;父元素.例如,如果您添加font-size: 0;到.container,正确的字体大小呈现.
有谁知道它为什么不尊重rem某个阈值以下的尺寸?
我有四张桌子:
RootNode // Will return multiple root nodes
SubNode // Will return one sub node per root node
SubNodeChildren1 // Will return multiple for each sub node
SubNodeChildren2 // Will return multiple for each sub node
Run Code Online (Sandbox Code Playgroud)
和类似的实体结构:
RootNode -> SubNode -> SubNodeChildren1
-> SubNodeChildren2
Run Code Online (Sandbox Code Playgroud)
我需要一个查询,它将返回RootNodes表中的所有内容,SubNode并SubNode初始化其子项.这SubNode是令人兴奋的,但SubNode孩子们是懒得取出来的.
我知道如何编写一个查询,该查询将LEFT OUTER JOIN FETCH表的直接子项并相应地初始化它们.但是,我不知道如何抓住从顶级表中急切获取的表的子项.
我尝试过类似的东西:
SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1
Run Code Online (Sandbox Code Playgroud)
但是,这总是给我一个错误,即所有者不属于SELECT.
任何帮助是极大的赞赏.
在Firefox中,我使用以下代码将文本插入~500 DIV:
$(".divs").text("default"); // ~500 DIVs
Run Code Online (Sandbox Code Playgroud)
在我的计算机上,如果DIV为空,则一直需要9 毫秒 .但是,如果DIV已经包含文本,则相同的代码始终需要18毫秒.
为什么空DIV在插入文本时要快2倍(jQuery是否需要先清空DIV)?并且,有没有办法提高替换已包含文本的DIV中的文本的性能?
注意:在IE 7中,速度差异并不那么显着.在空DIV中插入文本的速度提高了约1.5倍.
我有一个生成的页面菜单,其结构与以下嵌套列表类似:
<ul>
<li>Page 1</li>
<li>Page 2</li>
<li>
Page 3
<ul>
<li>Subpage 1</li>
<li>Subpage 2</li> <!-- Can I target ONLY this element? -->
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
请注意,此列表是动态的.项目数和级别数是不可预测的.所以,这样的事情不够灵活:
/* I know this does not have great browser support - just an example */
ul > li > ul > li:last-child {
/* CSS here */
}
Run Code Online (Sandbox Code Playgroud)
我意识到我可以修改我的服务器代码以将类添加到最后一项,但我首先想知道这是否可以在CSS中使用.
为了使问题更复杂,我想将所有主流浏览器与IE 7+一起定位.
是否可以使用CSS定位最后一个列表项?
基本上,我需要这个小提琴解决(通过@ Pumbaa80).
我有一个Ruby Web应用程序,托管在Digital Ocean VPS上.在当前设置下,我有一个生成在VPS上的bash脚本,执行时执行以下操作:
显然,这种方法不可扩展(甚至不好).因此,我正在尝试使用Travis CI + Capistrano设置部署管道,该管道在git push上自动安装,构建,测试和部署此Web应用程序.
到目前为止,我们让Travis CI在每次git推送时执行代码的安装,构建和测试,但我们绊倒了完成部署步骤的最佳方法.因为我们需要使用gulp构建JS和SASS文件,所以我们无法直接从git直接进入服务器并运行.由于Travis CI已经在构建这些文件,我们很好奇是否适合利用Travis CI构建的文件并将它们直接从Travis CI发送到我们的服务器.
我们考虑过的一些选择:
SCP +直接转移
与Travis CI上的自定义部署FTP示例一样,我们可以将构建的文件存储到我们的服务器并调用运行迁移的bash脚本并重新启动应用服务器.
Capistrano +直接转移
我们可以在Travis CI上安装Capistrano,并使用它直接将Travis CI上构建的文件传输到我们的服务器.在打包和发送之前,我们需要清理任何不需要传输的文件/目录(node_modules,bower等).转移包后,我们可以再次使用Capistrano提取它,运行数据库迁移,然后重新启动应用服务器.
为此,我们如何最大限度地减少部署停机时间?我们如何管理错误和回滚?
Capistrano + Git
我们可以将构建的Travis CI文件推送到github上的Git标签,并使用Capistrano在服务器上提取Git标签,运行数据库迁移,然后重新启动应用服务器.
为此,似乎git版本只应该用于prod,那么我们如何管理不同的环境(dev,stage和prod)?
无论如何,我们已经在线研究了很多,并且无法找到满足我们需求的解决方案,这些解决方案提供了从Travis CI部署到不支持的部署提供商的最佳标准方法.
鉴于上述情况,从Travis CI部署到VPS的最佳方式是什么?