小编Ste*_*ins的帖子

什么被认为是一个长的执行时间?

我试图弄清楚我的服务器端代码的效率.

使用microtime(true)测量速度,我能够计算我的脚本运行所花费的时间.

我得到的平均速度.3.5秒.这些脚本执行许多数据库查询以向用户返回不同的值.

什么被认为是将在网上运行的PHP脚本的有效执行时间?

我知道这完全取决于正在做什么,但只要将其视为从数据库读取并将值返回给用户的标准脚本.我看看谷歌,看到他们在.15几秒钟内搜索互联网,我觉得我的脚本是垃圾.

php performance execution-time

17
推荐指数
1
解决办法
7881
查看次数

通过Javascript获得几个月的周

在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)

谢谢你的帮助.

javascript calendar

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

带参数的路由被调用两次?

我正在通过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浏览器发出这些请求.

平台/版本:

  • NodeJS:0.5.5 windows build(在Win 7上运行)
  • 快递:2.4.6
  • 连接:1.7.1

connect node.js express

9
推荐指数
1
解决办法
2855
查看次数

创建条带摘要报告

我最近将支付处理转换为Stripe.我现在需要为财务部门创建一个报告,显示指定日期范围内的事务汇总.我已经开始创建一个简单的PHP网页(并使用Stripe PHP库),它将提供以下摘要:

  • 交易计数
  • 交易金额
  • 退款计数
  • 退款金额
  • 费用

我在查找如何使用Stripe正确查询费用时遇到了一些麻烦.

我知道我可以收取费用:

$charges = Stripe_Charge::all();
Run Code Online (Sandbox Code Playgroud)

从返回的收费集中,我可以计算报告中所需的摘要信息.但是,这只会给我带来最多100笔费用,而且我不知道如何在指定的日期范围内退还费用.

我希望更有经验的Stripe开发人员能够指出构建我需要的报告的正确方法.

如何在指定日期范围内退回所有费用?

有没有更好的方法从Stripe获取此摘要信息?

php api report stripe-payments

8
推荐指数
1
解决办法
3700
查看次数

在自有生产环境中访问流星设置

根据Meteor的文档,我们可以通过命令行包含设置文件,以提供特定于部署的设置.

但是,该--settings选项似乎只能通过rundeploy命令使用.如果我在自己的基础架构上运行Meteor应用程序 - 如文档中的" 运行在自己的基础架构"部分所述- 似乎没有办法在流程的任何位置指定特定于部署的设置文件.

有没有办法在我自己的基础架构上运行的生产环境中访问Meteor设置?

settings production-environment meteor

8
推荐指数
1
解决办法
2247
查看次数

REM字体大小未调整到低于任意阈值

在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-adjustnone不会影响问题.Firefox正确渲染大小.

我发现解决问题的唯一方法是设置font-size: 0;父元素.例如,如果您添加font-size: 0;.container,正确的字体大小呈现.

有谁知道它为什么不尊重rem某个阈值以下的尺寸?

css blink

8
推荐指数
1
解决办法
666
查看次数

HQL:从Eager Table获取加入集合

我有四张桌子:

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表中的所有内容,SubNodeSubNode初始化其子项.这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.

任何帮助是极大的赞赏.

sql hibernate hql

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

如何提高将文本插入HTML元素的性能?

在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倍.

javascript jquery

7
推荐指数
2
解决办法
2864
查看次数

是否可以定位CSS中的最后一个列表元素?

我有一个生成的页面菜单,其结构与以下嵌套列表类似:

<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).

css html-lists

7
推荐指数
2
解决办法
8953
查看次数

使用Travis CI和Capistrano连续部署到VPS的良好工作流程是什么?

我有一个Ruby Web应用程序,托管在Digital Ocean VPS上.在当前设置下,我有一个生成在VPS上的bash脚本,执行时执行以下操作:

  • 停止应用服务器
  • 将最新的git存储库代码克隆到本地服务器
  • 运行数据库迁移
  • 启动应用服务器
  • 清理

显然,这种方法不可扩展(甚至不好).因此,我正在尝试使用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的最佳方式是什么?

git capistrano travis-ci

7
推荐指数
1
解决办法
1075
查看次数