在基于服务器端的完全呈现(非Web 2.0)中,部署服务器端代码将在页面重新加载时直接更新客户端页面.相比之下,在基于React的单页应用程序中,即使在更新了React组件之后,仍然会有一些客户端使用旧版本的组件(它们仅在浏览器重新加载时获得新版本,这应该很少发生) - >如果页面完全是SPA,有些客户可能会在几个小时后刷新页面.
应采用哪些技术来确保任何客户不再使用旧组件版本?
更新:API未更改,只有更新版本更新了React组件.
具体到基于Docker的部署,这两者之间有什么区别?由于Google App Engine Flexible现在也支持基于Dockerfile的部署,而且它也是完全托管的服务,似乎它更受首选,而不是在Container Engine上配置Kubernetes部署,不是吗?
有什么用例比使用App Engine灵活使用Google容器引擎更优先?
google-app-engine google-cloud-platform kubernetes google-kubernetes-engine
我希望使用Puma webserver将我的Rails应用程序部署到Heroku.但是,我不确定所有Gems是否都是线程安全的.阅读所有宝石的源代码对我们来说不是一个可行的选择.
有没有办法自动检查所有Gems的线程安全性?或者,如果执行/检测到线程不安全的代码,Puma是否会抱怨/显示特定的错误日志?
假设我有动作A
被派遣到减速机R1
和R2
.我也有智能组件C
,connect
由R1
和返回的状态编辑R2
是否可能C
在R1
执行时但在R2
执行之前重新呈现组件?
如何如果我想重新呈现C
都只有当R1
和R2
执行?或者是否有可能告诉Redux 先将dispatcher
行动派遣R2
?
*R1
实际上是results
redux返回的状态normalizr
,R2
是entities
状态.在entities
需要进行非规范化的results
在我们的生产环境中,我们注意到Rails应用程序中经常出现峰值(〜每1小时一次).深入挖掘,这是由于以下查询在单个HTTP请求中累计运行> 1.5 s(称为100x).
SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a
LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = ?::regclass AND a.attnum > ? AND NOT a.attisdropped
ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)
我们没有显式调用该表的代码,但似乎Rails调用它来计算每个模型的属性." 对Rails/Heroku上的Postgres数据库的意外SQL查询 "是相关的.
但不应该被Rails称为非重复性的吗?
我们如何加快速度?
我想知道你加载简单的PhoneGap应用程序有多快.我的简单应用程序在Galaxy S3上需要6-8秒(所有资源都存储在本地驱动器中).不确定PhoneGap是否正常.
任何人都可以打2-3秒加载时间?有什么提示让它加载更快?
我的团队使用React MaterialUI库.为了提供一致的UI模式并使我们能够轻松定制MaterialUI的组件,我们将每个MaterialUI的组件包装在我们自己的组件中.例如:
const style = {} // our project custom style for ListItemText
const OurListItemText = ({primary, secondary, classes}: Props) => (
<MuiListItemText
primary={primary}
secondary={secondary}
className={classes.text}
/>
) // we only expose primary and secondary props of the original MuiListItemText.
// Team members are blocked from customising other MUIListItemText's props
export default withStyles(styles)(OurListItemText)
Run Code Online (Sandbox Code Playgroud)
MuiListItemText
是原始的MaterialUI的组件,OurListItemText
而是我们的包装器组件.在我们的项目中,只 OurListItemText
允许使用.
作为上面的片段,OurListItemText
除了将道具转发之外什么都不做MuiListItemText
.但是,这会对性能产生很大影响:
ListItemText
顶部的酒吧来自OurListItemText
下方的酒吧MuiListItemText
.如果我们MuiListItemText
直接使用,它可以快〜50%(我们已经尝试过),当我们有100时,这是显而易见的ListItemText
.删除withStyles
HOC略有改善,但并不显着. …
public Object foo(int opt){
if (opt == 0) return new String();
else if (opt == 1) return new Integer(1);
else if (opt == 2) return new Double(1);
else if ...
.. and many more
}
public void doSomething(String s){..}
public void doSomething(Integer i){..}
public void doSomething(Double d){..}
... and many more doSomething method
public static void main(String[] args){
...
Object o = foo(x); //x is a value obtained during runtime, e.g. from user input
//now I want to call doSomething …
Run Code Online (Sandbox Code Playgroud) 我有维基媒体在Docker上运行.维基媒体的扩展名驻留在extensions/
最初包含内置扩展名的文件夹中(一个扩展名=一个子文件夹)
现在我想添加新的扩展.但是我不喜欢修改Dockerfile或在现有容器上创建新提交的选项.
是否可以在主机(例如/home/admin/wikimedia/extensions/
)中创建一个文件夹,该extension
文件夹将与容器中的文件夹合并(而不是覆盖)?因此,每当我想安装新扩展时,我只需将扩展文件夹复制到主机/home/admin/wikimedia/extensions/
我正在寻找免费的文件托管服务,这使我可以轻松获得每个文件的静态链接.因此,应将文件1.png,2.png,3.png分配给URL:www.something.com/somepath/1.png,www.something.com/somepath/2.png,www.something.com/ somepath/3.png分别
稍后,文件将由移动应用程序下载,该应用程序可能由许多用户安装.
在搜索互联网之后,在主要存储提供商中,只有Dropbox和GitHub使我能够获得公共直接非随机化URL(一些其他服务,例如SkyDrive,Box,Copy,4Shared,MediaFire随机化文件名).当然,没有什么能阻止我使用Dropbox,但我听说如果流量过高,Dropbox可能会阻止访问.
有谁知道GitHub是否允许我们这样做?我知道Git不是用于跟踪二进制文件,但由于文件是静态的(只有1次提交就足够了),因此不需要跟踪delta.
最大单个文件大小为3-4 MB.将有1,000个这样的文件.所有文件均不受版权保护.
除了GitHub和Dropbox之外,其他任何存储供应商都满足这些要求吗?
*移动应用程序将是开源的,不用于商业目的.
reactjs ×3
heroku ×2
ruby ×2
casting ×1
cordova ×1
docker ×1
dynamic ×1
github ×1
java ×1
javascript ×1
kubernetes ×1
material-ui ×1
performance ×1
postgresql ×1
puma ×1
redux ×1
reflection ×1
storage ×1
types ×1