我正在尝试做的是处理同一个Web应用程序的多个版本,有点像谷歌与他们的一些产品,你得到"尝试新版本"链接.
目标是同时拥有webapp的"稳定"版本和"beta"版本,并让用户试用新功能而不必强迫它们(以及它们的错误).
现在,一种非常简单的方法是将每个版本放在自己的子文件夹中,例如www.mywebapp.com/v1和www.mywebapp.com/v2.
但是,我希望这对用户和webapp URL保持透明以保持不变(例如:www.mywebapp.com/).
在用户登录后确定必须加载哪个版本的服务器端(例如:给定用户的活动版本存储在DB中),并且可以在用户点击"尝试新版本"/"go时更改回到旧版本"链接.
在服务器端,我必须使用MySQL,PHP和Apache.
我已经设法让这个工作将每个版本放入它自己的子文件夹,然后将版本信息存储在cookie中(在每次登录或页面刷新时由服务器更新)并使用RewriteRule来"代理"来自base/versionless的请求适当子文件夹的URL.如果未设置cookie,则由后备RewriteRule选择默认文件夹.
这个kludge工作,但感觉非常脆弱,它给Apache守护进程带来了额外的负担所以我在这里问我是否有人知道更好的方法.
谢谢!
将隐藏HTML文档的复杂部分隐藏在屏幕外DIV中的性能影响如下:
<div style="position:absolute;top:-10000px;left:-10000px;">
Lots of HTML here...
</div>
Run Code Online (Sandbox Code Playgroud)
与使用"display:none"或"visiblity:hidden"相比?
是否有性能/内存使用惩罚?有多糟糕?如果目标是移动浏览器(iPhone/Android),这是否可取?
在Ext.MessageBox中是否有一个Ext-approction方法来突出显示默认按钮(按Enter键触发的按钮)?
请注意,我不想通过在显示MessageBox时聚焦按钮来做到这一点(如果是"提示"对话框,我希望输入元素具有焦点).
我知道我可以通过在按钮元素中添加一个自定义类来实现这一点,但是...也许有更好的,更类似Ext的方式来做到这一点?
谢谢.
快速代码(100ms):
// Mixed could theoretically be an object or an array.
// In this example it's an array.
$mixed = array();
for($i = 0; $i < 10000; $i++) {
if (is_array($mixed)) {
$mixed[getRandomStr(15)] = 'abcd';
} else {
// Do something else which we don't care about here
}
}
Run Code Online (Sandbox Code Playgroud)
非常慢的代码(4000毫秒):(注意$ mixed通过引用传递)
function put(&$mixed, $key, $value) {
if (is_array($mixed)) {
$mixed[$key] = $value;
} else {
// Do something else which we don't care about here
}
}
$mixed …Run Code Online (Sandbox Code Playgroud) 我的 Web 应用程序的异常处理代码有时会报告 window.open 返回 null 或未定义。这是偶发的,我看到它在 Firefox 4.0.1 和 5.0 上发生的大部分时间,在较小程度上发生在 Chrome 上。
何时以及为什么会发生与特定浏览器相关的情况?
我听说 IE8 和 IE9 在保护模式下工作时可以做到这一点。真的吗?那么火狐呢?歌剧?铬合金?苹果浏览器?
重要笔记:
performance ×2
php ×2
apache ×1
arrays ×1
button ×1
extjs ×1
html ×1
javascript ×1
messagebox ×1
ria ×1
show-hide ×1
window ×1