现在有很多关于redux镇最新孩子的讨论,redux-saga/redux-saga.它使用生成器函数来监听/调度操作.
在我绕过它之前,我想知道redux-saga
使用redux-thunk
async/await时使用的优点/缺点而不是下面的方法.
组件可能看起来像这样,像往常一样调度动作.
import { login } from 'redux/auth';
class LoginForm extends Component {
onClick(e) {
e.preventDefault();
const { user, pass } = this.refs;
this.props.dispatch(login(user.value, pass.value));
}
render() {
return (<div>
<input type="text" ref="user" />
<input type="password" ref="pass" />
<button onClick={::this.onClick}>Sign In</button>
</div>);
}
}
export default connect((state) => ({}))(LoginForm);
Run Code Online (Sandbox Code Playgroud)
然后我的行为看起来像这样:
// auth.js
import request from 'axios';
import { loadUserData } from './user';
// define constants
// define initial state
// export default reducer …
Run Code Online (Sandbox Code Playgroud) 试图找出最好的方法,将装箱后的已知宽度的svg图像打包/分布在水平行中,如果容器的宽度太紧,可以将它们堆叠在一起。
容器的高度应最佳地自动调整,并且重力应为垂直中心点。创建了一些图像来说明所需的解决方案。
有没有解决这个问题的JS库,也许是d3?感觉上像是一个装箱问题,但也许在顺序和重力方面增加了一些复杂性。对画布解决方案不感兴趣。
如果容器足够宽
太紧,堆叠一些元素
更紧密地堆叠所有
试图找出在本地测试PubSub推送端点的最佳方法.我们尝试使用ngrok.io,但您必须拥有该域才能进行白名单(这样做的工具也会被破坏...导致无限重定向循环).我们还尝试在本地模拟PubSub.我能够发布和拉取,但我不能让推送订阅工作.我们正在使用像这样的本地Flask网络服务器:
@app.route('/_ah/push-handlers/events', methods=['POST'])
def handle_message():
print request.json
return jsonify({'ok': 1}), 200
Run Code Online (Sandbox Code Playgroud)
以下产生无结果:
client = pubsub.Client()
topic = client('events')
topic.create()
subscription = topic.subscription('test_push', push_endpoint='http://localhost:5000/_ah/push-handlers/events')
subscription.create()
topic.publish('{"test": 123}')
Run Code Online (Sandbox Code Playgroud)
当我们尝试创建对HTTP端点的订阅时,它会对我们大喊大叫(如果您不使用HTTPS,则会显示实时PubSub).也许这是设计的?Pull工作得很好......关于如何最好地开发PubSub的任何想法在本地推送端点?
我正在构建一个播放音频的HTML5应用.但是,在锁定屏幕模式下在iOS8 iPad/iPhone上播放音频时,会显示音频的URL(参见下图).如果可以将该文本更改为更具描述性的内容,例如轨道的艺术家/标题,那将是很棒的.逻辑解决方案是从title
属性或某些特定于苹果的元标记中读取,但我尝试的任何内容似乎都无效.
有谁知道文本是否可以用html/javascript改变?
新手问题,我最近改变了我的PS1:
RESET="\[\017\]"
NORMAL="\[\033[0m\]"
YELLOW="\[\033[0;33m\]"
CYAN="\[\033[0;36m\]"
export PS1="\[$RESET\]\u@\h:\[$CYAN\]\w\[$YELLOW\]\$(__git_ps1)\[$NORMAL\] \$ "
Run Code Online (Sandbox Code Playgroud)
但现在我得到一个换行错误.我创建了一个gif来解释这个问题:
什么想法可能是错的?
只是想知道每次使用Backbone.js路由器时是否有一种简单的方法来触发自定义功能,而无需在每个路由器功能中添加它.现在我的脚本看起来像这样:
var AppRouter = Backbone.Router.extend({
routes: {
'' : 'index',
'test': 'test',
},
initialize: function() {
},
index: function() {
customFunction();
indexView.render();
},
test: function() {
customFunction();
testView.render();
},
});
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
var AppRouter = Backbone.Router.extend({
routes: {
'' : 'index',
'test': 'test',
},
initialize: function() {
},
index: function() {
indexView.render();
},
test: function() {
testView.render();
},
change: function() {
customFunction();
}
});
Run Code Online (Sandbox Code Playgroud)
有没有人有什么建议?
我正在构建一个Drupal网站,其中包含许多用户特定的信息,这些信息将使用jQuery/ajax发布.它本身的信息不是很敏感,重要的是验证表单数据没有被Firebug等工具篡改,以及确保指定用户真正请求信息.换句话说,我试图找出使用ajax发布时保护数据完整性和真实性的最佳方法.
理想情况下,我想使用一些众所周知的消息认证系统,如HMAC算法.但由于这包含了一个对称密钥,我不知道如何在不暴露我的javascript文件中的密钥的情况下加密POST数据(显然任何人都可以看到).
如果我对如何运作有错误的想法,请纠正我.
例如,我需要发送的信息
field1=x&field2=y&uid=10
Run Code Online (Sandbox Code Playgroud)
...然后计算数据的哈希值和密钥.这可能不在我的javascript代码中暴露哈希函数吗?
CHECKSUM: hash(postdata, "secret_key")
Run Code Online (Sandbox Code Playgroud)
...最后将校验和附加到原始postdata.
field1=x&field2=y&uid=1&c=CHECKSUM
Run Code Online (Sandbox Code Playgroud)
我可以选择使用登录用户的会话ID.然而,这不会检查消息的完整性......
使用PHP生成表单时,我可以使用以下内容生成隐藏的输入
CHECKSUM: hash(session id for the current user, "secretkey")
Run Code Online (Sandbox Code Playgroud)
然后我将使用ajax发布的是
field1=x&field2=y&uid=10&c=CHECKSUM
Run Code Online (Sandbox Code Playgroud)
有了它,验证适当的用户(再次伪代码)是相当安全的
ssid = SELECT ssid FROM sessions WHERE uid = $_POST[uid]
if(ssid && hash(ssid, "secretkey") == $_POST[c]) {
//User OK
} else {
//Invalid user
}
Run Code Online (Sandbox Code Playgroud) 我有一个不同长度的N个区间的排序数组.我正在用蓝色/绿色交替颜色绘制这些间隔.
我试图找到一种方法或算法来"下采样"间隔数组,以产生视觉上相似的图,但元素较少.
理想情况下,我可以编写一些函数,我可以将目标输出间隔数作为参数传递.输出长度只需接近目标.
input = [
[0, 5, "blue"],
[5, 6, "green"],
[6, 10, "blue"],
// ...etc
]
output = downsample(input, 25)
// [[0, 10, "blue"], ... ]
Run Code Online (Sandbox Code Playgroud)
下面是我想要完成的图片.在这个例子中,输入有大约250个间隔,输出大约有25个间隔.输入长度可能会有很大差异.
我有一个连接方块的区域(img在左边),并且想要找到可以装入该区域的最大数量的"双"方块(img在右边).
我的方法是将原始区域表示为图形,其中每个方块表示由边缘连接到下方,上方,左侧和/或右侧的正方形的顶点.
我认为可以通过使用BFS算法,检查每个顶点和应用颜色来完成.但我也觉得可以用动态编程完成......我需要一些帮助!
加入这两个表需要一些帮助
我有两个看起来像这样的观点
view1 view2
+------+--------+ +------+--------+
| code | SUM(*) | | code | SUM(*) |
+------+--------+ +------+--------+
| AAA | 4 | | AAA | 4 |
| BBB | 3 | | CCC | 1 |
+------+--------+ +------+--------+
Run Code Online (Sandbox Code Playgroud)
我想将它们加入到一个看起来像这样的表中
+------+--------+
| code | SUM(*) |
+------+--------+
| AAA | 4 |
| BBB | 3 |
| CCC | 1 |
+------+--------+
Run Code Online (Sandbox Code Playgroud)
我试过了,但只是失败了......
无法让下面的代码工作.
我试图从具有自己的事件对象的渲染子视图中触发事件.
是否有可能以简单的方式做到这一点?
var SubView = Backbone.View.extend({
events: {
'click .subview-item a': 'test'
},
el: '#subview',
test: function() {
console.log('please print this...');
},
initialize: function() {
this.template = '<div class="subview-item"><a href="#">Clickable Subview</a></div>'
},
render: function(){
$(this.el).html(_.template(this.template));
return this;
}
});
var MainView = Backbone.View.extend({
el: $('#content'),
initialize: function(){
this.template = '<h1>Hello</h1><div id="subview"></div>';
this.subView = new SubView();
},
render: function(){
$(this.el).html(_.template(this.template));
this.subView.render();
return this;
}
});
var mainView = new MainView({});
mainView.render();
Run Code Online (Sandbox Code Playgroud)
有任何想法吗??
javascript ×6
algorithm ×2
backbone.js ×2
ajax ×1
audio ×1
bash ×1
bin-packing ×1
d3.js ×1
database ×1
downsampling ×1
drupal ×1
graph ×1
html5 ×1
intervals ×1
ios ×1
ios8 ×1
join ×1
lockscreen ×1
macos ×1
node.js ×1
php ×1
ps1 ×1
reactjs ×1
redux ×1
redux-saga ×1
redux-thunk ×1
rxjs ×1
security ×1
sql ×1
svg ×1
views ×1
xstream ×1