小编Mar*_*vin的帖子

相当于div显示IE8,IE7和旧浏览器的内联块

这是一个关于跨浏览器兼容性的相当普遍的问题.

在设计的各个方面,我目前正致力于实现我想要的布局和样式(不使用图像)的唯一方法是使用display:inline-blockcss样式选项.但是,IE8和其他旧浏览器不支持这种情况,这导致我的设计失败.

因此,我的问题1有两个部分 - 是否有一种方法可以实现IE8的类似或等效效果?2 - 如果没有,我如何才能使设计顺利降级?

供您参考,这是一个在我的设计中使用它的例子.

<div style="width:20px; height:20px; display:inline-block; background-color:rgb(200,120,120); margin-right:10px;"></div>Direct

它是一个20x20像素的颜色块,用于解释图表中的颜色.

更普遍的是,每当我想要在文本体内对文本的特定位等进行更大的格式化和布局控制时,就会出现这个问题.

在我正在进行的设计中,我将不再支持旧的浏览器类型,因为它严重依赖于canvas元素.但是,我认为这是一个很好的问题,因为我之前已经多次遇到过这个问题.

谢谢

html css cross-browser internet-explorer-8

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

SQL插入速度的变化

我正在处理的脚本旨在更新数据库表,该数据库表记录了使用国家和所有IP地址(或几乎所有IP地址)的状态.目前我保持简单,只从5个RIR(地区互联网注册管理机构)获取数据并将其保存到我的数据库.

最初速度是不切实际的,但是通过减少日志中的信息量并将SQL插入分组为1000个组并使用单个查询,它们已经显着改进.但是,现在运行脚本时,SQL插入速度的变化非常大,我想知道是否有人知道原因.

以下是我录制的一些速度.在测试中,我分离了在PHP中执行脚本迭代所花费的时间以及应用sql语句所花费的时间,我没有在下面的列表中包含PHP时间,因为效果可以忽略不计; 即使是最大的数据块,也不会超过1秒.

测试速度(插入的数据行数始终保持不变)

测试1 总SQL执行时间:33秒

测试2 总SQL执行时间:72秒

测试3 总SQL执行时间:78秒

其他测试继续在~30秒至约80秒之间波动.

我有两个问题:

1)我应该接受这些差异作为世界的方式,还是有理由为它们服务?

2)我将~185000行插入集中到一个查询中感到很紧张.有什么理由我应该避免对这些插入使用一个查询吗?我之前没有使用过这么多数据.

谢谢

__

数据库表如下.

Sorage Engine - InnoDB

列:

id - int,主键

registry - varchar(7)

代码 - varchar(2)

type - varchar(4)

start - varchar(15)

value - int

日期 - 日期时间

status - varchar(10)

php mysql performance insert

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

Apache模块:实现100-Continue

用HTTP支持HTTP 100 Continue with PHP在2010年提出了这个问题,重点稍有不同(它寻求的是PHP解决方案,而不是Apache解决方案),但从未解决。

语境

HTTP / 1.1规范创建了请求标头“ Expect”,该标头具有一个已定义的值;即“ 100-继续”。2014年6月发布的修订版HTTP / 1.1 RFC(请参阅RFC 7231第5.1.1节)规定如下:

100连续期望值通知接收者该客户端即将在此请求中发送(可能很大)消息正文,并且如果请求行和标头字段不足以导致立即发送,则希望接收100(连续)临时响应成功,重定向或错误响应。这允许客户端在实际发送之前等待值得发送消息正文的指示,这可以提高效率,当消息正文很大或客户端预计可能发生错误时(例如,在发送状态时)第一次更改方法,而无需事先验证的身份验证凭据。

这也是一个普遍接受的声明,说明该部分的内容已被服务器和客户端完美地实现了。修订后的规范甚至暗示了这一点:

...但是,客户端尚未使用扩展机制,许多服务器尚未实现必须理解的要求 ...

重点是我的,而不是规范

即使不包括此标头的扩展机制,100连续值似乎也实现不佳。如果我们考虑使用标准的PHP / Apache堆栈,那么如果客户端请求,Apache会提供100个连续的临时响应。

但是,它仅基于自己对请求的处理来执行此操作,即无需咨询PHP资源。这似乎违反了标头的目的,因为大多数请求由于无效的请求参数或权限而失败;并非由于HTTP请求格式错误。因此,即使客户端声明了100个连续的期望并收到100个连续的响应,也并不意味着请求头是有效的。

意向

为了更全面地实现HTTP规范(旨在提高网络效率,安全性和清晰度),我打算在发送100个继续响应之前更正确地验证请求标头。

这意味着在发送100个继续响应之前,必须将请求传递到我的PHP资源控制器以进行验证。这样可以在客户端浪​​费时间和资源发送大型邮件正文之前,识别出无效的参数和不正确的权限。

我希望交换看起来像这样:

Client                    Apache                      Resource
->|                         |                            |
  |------Request Head------>|                            |
  |                         |-[Parse]                    |
  |<-----400 bad request----|                            |
  |                         |-[Route]                    |
  |                         |-------Request Head-------->|
  |                         |                            |-[Validate]
  |                         |<---Error / 100 Continue----|
  |<--Error / 100 Continue--|                            |
<-|[End or...]              |                            |
  |------Request Body------>|                            |
  |                         |--------Full …
Run Code Online (Sandbox Code Playgroud)

php apache http

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