第一次问我自己的问题:)
我正在一个网站上工作,我尝试使用通常的技巧将其垂直扩展到客户端窗口的底部:
html, body { height: 100%; }
.container { min-height: 100%; }
Run Code Online (Sandbox Code Playgroud)
然后,我想在主要内容上方添加一些标题,在底部添加粘性页脚.我把它们都装在自己的容器里,然后将标题拉到顶部,如下所示:
.top { position: relative; z-index: 1; height: 168px; }
.end { height: 58px; }
Run Code Online (Sandbox Code Playgroud)
知道了页眉和粘性页脚的高度,然后我开始调整页面的总高度,这样它就会完全填满客户端窗口(没有滚动条),除非内容太长.我用负边距做了这个:
.container { overflow: hidden; min-height: 100%; margin-top: -164px; margin-bottom: -58px; }
.container-in { margin-top: 164px; margin-bottom: 58px; }
Run Code Online (Sandbox Code Playgroud)
第二个容器在第一个容器内,它是我放置每个页面的实际内容的地方.
因此,这在Firefox 4/5上运行得很好 - 绝对没有任何关闭,它就像预期一样.Chrome似乎还可以.但是,在IE8上,它忽略了.container的负余量(我查看了开发人员工具).容器在.top之后开始,因此.top和.container-in之间存在164px的间隙,因为.container-in的边距.
有趣的是 - 如果我将IE8切换到IE7兼容模式,这个问题就不再发生了!在IE7模式下,负边距表现得很好,但当然其他一些东西也会中断,因此告诉IE使用兼容模式不是一种选择.
有关如何解决此问题的任何想法/使用不同的解决方案在所有浏览器中获得相同的效果(不需要IE7)?我做错了吗?
编辑:经过一些更多的乐趣和游戏,我发现通过用负顶部替换负边距:坐标(并将所有容器设置为相对),它在IE8上完美运行但现在它在Firefox 中的html容器下面留下了222px的间隙(根据萤火虫).困惑!
EDIT2:从技术上讲,我相信我知道这里有什么问题.Internet Explorer 8认为负边距是"溢出",并且由于溢出:隐藏,它会杀死边距.如果我删除溢出:隐藏它不再有这种行为,但它打破了设计的其余部分.任何人都有任何想法吗?
几个月前,我使用PHP 5.3为客户编写了一个网站.它在我自己的LAMP网络服务器上完美运行.但是,当他试图将它安装在自己的服务器上时(目前是在CentOS 5上运行DirectAdmin的OVH服务器),他遇到了一个我无法搞清楚的问题.
该网站可以存储通过表格上传的图像.图像在上载时加水印并移动到Web服务器中的目录(某些元数据存储在数据库中,但这与此问题无关).
为了将这些图像显示给用户,使用如下脚本:
header("Content-type: image/jpeg");
ob_start();
echo file_get_contents($path);
$size = ob_get_length();
$img = ob_get_contents();
ob_end_clean();
header ("Content-length: " . $size);
echo $img;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这总是会返回一个损坏的图像(在Firefox中,"图像无法显示,因为它包含错误").现在,经过仔细测试,我知道:
图像已正确上载到服务器.存储在网络服务器中的图像数据是有效的,可以通过FTP作为常规图像获得.
如果我将$ img存储在前一个脚本的最后一行之前的文件中,如下所示:
$fh = fopen("test.jpg", "w");
fwrite($fh, $img);
fclose($fh);
Run Code Online (Sandbox Code Playgroud)
它还会将正确的图像数据保存到文件中.因此,数据在发送到用户的Web浏览器之前立即完好无损.
标头正在正确发送.
然而!如果我使用text/plain标头而不是image/jpeg,我可以看到返回的乱码与显示的乱码不同,如果我用记事本本地打开文件(或直接通过apache将图像作为文本文件发送).在原始图像中,我可以看到一些EXIF.在PHP生成的图像中,然后发送到用户的Web浏览器,我仍然看到JFIF魔术代码(用于JPEG文件图像格式),但其余的看起来不同.
我担心我在PHP或Apache上遇到与编码,缓冲,内容压缩等相关的配置相关问题.有谁知道我可以尝试解决这个问题吗?
编辑:
更改了要使用的脚本:
$img = file_get_contents($path);
$size = filesize($path);
Run Code Online (Sandbox Code Playgroud)
问题保持不变,但现在内容与真实图像与PHP发送的图像相比看起来完全相同.根据标题,内容编码是gzip.有任何想法吗?
下午好.我的CentOS 6(64位)服务器上的Java VM问题非常令人困惑.它是一个具有四核CPU(具有超线程),16GB RAM和2TB硬盘空间(在软件RAID1上)的服务器.我想我会在这里问一下,因为根据FAQ,关于开发人员使用的"常用工具"的问题是合适的.希望有人能够对这个问题有所了解.
我在服务器上运行一个Java软件,每天24小时.今天早些时候(在服务器的区域设置午夜后几小时检测到,这是值得注意的,因为它是一个月的第一天)我收到连接到该软件的用户的报告,因为客户端突然变得无法使用.JVM从未中断或重新启动.它仅在几天前重新启动,并且从那时起它一直正常运行(使用大约5%或更少的CPU,这是正常的).
这一次,当我检查过程时,它实际上吞噬了它可能从服务器上运行的其他应用程序(如上面报告的)所花费的所有CPU时间,或者,超过100%(由ps报告).我尝试停止并重新启动应用程序,但一旦运行,CPU使用率将立即再次高达100%以上.内存使用情况正常.我尝试了不同的JVM标志,但无济于事.我尝试下载最新版本的软件并进行全新安装,但这也无济于事.最后,我尝试下载另一个完全不同的Java软件,但是当我在服务器上运行它时,它遇到了同样的问题.
当我下载软件并在我的计算机上运行时,CPU使用率正常.因此,我假设服务器中存在错误,但我无法想象它可能是什么.服务器的JVM是最新的,来自标准的存储库包(无需任何自定义).
来自java -version:
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
来自uname -a:
2.6.32-131.21.1.el6.x86_64 #1 SMP Tue Nov 22 19:48:09 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
从centos-release/redhat-release/system-release:
CentOS release 6.2 (Final)
Run Code Online (Sandbox Code Playgroud)
关于14.5gb免费RAM的免费报告.df报告/ home分区中有1.4tb可用磁盘空间(有问题的软件及其所有文件所在的位置).
有任何想法吗?请询问您是否需要更多数据,并随时建议我试用/检查程序.在查找问题时,我发现有几个人在JVM上窃取CentOS上的所有CPU时出现问题但是没有一个人能够解决我的问题.
我在MySQL中遇到一个SELECT查询问题,我会感谢一些指针.请随时指出我现有的答案(如果有的话我错过了).
查询目前如下:
SELECT e.*, ie.aaa, ue.bbb, ue.ccc
FROM ie
LEFT JOIN e ON ie.e_id = e.e_id
LEFT JOIN ue ON ie.e_id = ue.e_id
WHERE ie.other_id = ? AND ue.unrelated_id = ?
ORDER BY ...
Run Code Online (Sandbox Code Playgroud)
有三个表:即,ê和UE.
表ie和ue是e的关系,因此包含外键(e_id).?表示输入参数.
问题是ue.unrelated_id =?部分.我真正想做的是:
不幸的是,如果我删除这个where子句,我会得到ue.ccc的"随机"unrelated_id.但是如果我保留它,如果这个unrelated_id不存在,查询将不会返回任何结果!我也尝试添加OR ue.unrelated_id IS NOT NULL,但如果ue表为空,这会使查询返回结果.
有任何想法吗?如果您需要进一步说明,请发表评论.我应该在接下来的几个小时内迅速回答.
我有一个查询,当前返回具有以下属性的数据:
例:
+--+-+-+
|id|A|B|
+--+-+-+
| 5|1|2|
|15|3|2|
|12|4|5|
|66|6|5|
| 2|7|2|
+--+-+-+
Run Code Online (Sandbox Code Playgroud)
我在这里看到的答案解释了如何在结果中返回行号.然而,我需要的是获得(优选的基于1的)订单号,同时保持每个B的不同计数.在下表中,C是所需的结果:
+--+-+-+-+
|id|A|B|C|
+--+-+-+-+
| 5|1|2|1|
|15|3|2|2|
|12|4|5|1|
|66|6|5|2|
| 2|7|2|3|
+--+-+-+-+
Run Code Online (Sandbox Code Playgroud)
这有点超出了我目前的SQL技能,所以我会感谢任何指针.包括指向现有答案的指针!
编辑:以下两个答案在结果方面同样有效(使用虚拟包装查询进行排序).谢谢大家的帮助.哪个是最有效的查询?考虑到在我的特定用例中,从原始查询返回的行数永远不会很大(假设最多50行,甚至这是想象力的一部分).此外,原始查询具有用于从其他关系获取数据的连接,尽管它们与排序或过滤无关.最后,所有结果都可能具有相同的B,或者它们中的每一个都具有不同的B - 它可以在两者之间或之间的任何地方.
我想知道是否有人可以通过一些SQL帮助我,以返回两天或更长时间(让我们以7天为参考)返回登录到数据库表中的唯一身份用户的数量。
我的日志表在每行中都包含一个时间戳(ts)和user_id,代表该用户当时的活动。
以下查询从该日志返回每日活动用户或DAU:
SELECT FLOOR(ts / 86400) AS day, COUNT(DISTINCT user_id) AS dau
FROM log
GROUP BY day ORDER BY day ASC
Run Code Online (Sandbox Code Playgroud)
现在,让我们说我想向此单个查询添加(或至少以最有效的方式进行检索)每周活跃用户或7天期间记录的唯一身份用户总数。但是,我不想将时间浪费在不重叠的几周内。我需要每天计算当天和前6天中看到的不同的user_id。
例如:
day users wau
1 1,2 2
4 1,3 3
7 3,4,5 5
8 5 4 (user_id 2 lost from count)
15 2 2 (user_ids 1,3,4 lost from count)
Run Code Online (Sandbox Code Playgroud)
感谢您提供的任何帮助,如果需要进一步说明,请随时通过评论询问。