小编Dav*_*her的帖子

YSlow建议.他们有多重要?

所以我刚刚为firebug下载了yslow,并查看了我正在构建的网站的结果.

我看到建议,例如,使用ETags,我的静态组件的无cookie域,并添加过期标头.

我在想,好吧我可以去解决这些问题但是我可以先做一些其他的优化,例如缓存数据库调用的结果或类似的东西.

我不认为这个网站会得到"那么多"的使用来保证YSlow的建议.

我知道你应该在你知道自己需要之前不进行优化,但我认为像ETags和expires标题这样的东西肯定只会在流量非常大的网站上发挥作用.

例如,我写了一个糟糕的实现,每次请求对数据库进行5次(相对较小的)调用,而YSlow告诉我我的14个图像不在无cookie域中,那么这两个优化中的哪一个应该先解决?

optimization yslow http-request

8
推荐指数
2
解决办法
2689
查看次数

有没有什么好的理由让javascript成为内联

我一直在建一个网站.在某些阶段,我注意到IE显示有点坏了,Chrome除了身体标签(空)之外什么都没有呈现,而且FF看起来都很好.

把键盘扔到房间后面,把头撞在我的鼠标上后,我发现了问题所在.我已经离开了(不要问怎么或为什么,一定是闪电般的速度切割和粘贴错误)在内联脚本块中未公开的HTML注释.

<script type="text/javascript">
        <!--
        ...
    </script>
Run Code Online (Sandbox Code Playgroud)

我猜测(未经测试)问题可能要么没有出现,要么在脚本是外部的时候以更加明显的方式表现出来.所以无论如何,我开始思考,有没有时间你有一个很好的理由来编写内联脚本?

html javascript scripting inline

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

IE8向后兼容吗?

希望有些人对此有所了解.

我很快意识到IE8肯定不能再被忽视了.我以前把它归结为a)只是一个有缺陷的软件,或者b)仍然只占一小部分市场份额.然而,现在,我看到越来越多的要求,以确保网站的工作.

我的问题是,我是否可以切换到仅在IE8上进行测试并安全地"相信"生成的代码仍可在IE7上运行?

任何想法/知识都会有所帮助.干杯.

testing compatibility cross-browser internet-explorer-8 internet-explorer-7

4
推荐指数
3
解决办法
1318
查看次数

关于字符串实习表现的问题

我很好奇.该场景是一个Web应用程序/站点,例如100个并发连接和每秒许多(20?)页面加载.

如果应用需要服务器格式化的字符串

string.Format("Hello, {0}", username);
Run Code Online (Sandbox Code Playgroud)

"Hello,{0}"会被实习吗?或者它只会被实习

string hello = "Hello, {0}";
string.Format(hello, username);
Run Code Online (Sandbox Code Playgroud)

就实习而言,这将提供更好的表现:以上或,

StringBuilder builder = new StringBuilder()
builder.Append("Hello, ");
builder.Append(username);
Run Code Online (Sandbox Code Playgroud)

甚至

string hello = "Hello, {0}";
StringBuilder builder = new StringBuilder()
builder.Append("Hello, ");
builder.Append(username);
Run Code Online (Sandbox Code Playgroud)

所以我的主要问题是:1)是否会对string.Format文字进行实习2)是否值得为字符串构建器设置变量名以进行快速查找,或者3)查找本身是否相当繁重(如果上面的#1是否为)

我意识到这可能会带来微小的收益,但正如我所说,我很好奇.

.net c# performance string-interning

3
推荐指数
1
解决办法
714
查看次数

有没有办法从所有会话中清除一些会话数据?

一般来说,我有以下情况:

  • 从数据库中获取产品及其相关数据
  • 将获取的数据转换为php'product'对象
  • 缓存会话中的产品对象

缓存是只读的,即客户在网站上查看产品.

但是有些调用getProductIdsByCategory($categoryId),这些结果的productId也被缓存,每个用户,而不是使用我读过的全局缓存.

问题在于,如果管理员端的某个人添加了新产品并将其与某个类别相关联,那么在getProductIdsByCategory新会话启动之前,客户将不会将新产品出现在他们的缓存中.

有没有办法在$_SESSION['x']添加新产品时清除服务器上的所有会话?我不想破坏所有会话,因为客户将丢失他们的登录等.

或者我应该将这些缓存的productId搜索移动到全局缓存中吗?

ps我正在使用自定义构建的缓存,而不是memcached或类似的.

谢谢

php session caching global

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