小编the*_*azz的帖子

Ajax vs Socket.io

我正在开发一个Web应用程序,我想知道哪种方法应该适合我的项目.

基本上我想向用户显示的是一些通知,这些通知是从对其他服务器的请求中获取的.我的node.js应用程序获取所有信息,然后传播给用户,将副本保存到我的MongoDB中.

这个想法非常简单但是阅读方法我发现了这两种技术:

  1. Ajax:如果服务器上有新内容,客户端将检查所有时间.这可以通过使用jquery ajax get到我的服务器API(每30/60秒)来完成.

  2. Socket.io:客户端连接一次,然后保持永久TCP连接(更实时).


现在我已经解释了情况,我有以下问题:

  • 我不会对ajax提出太多请求吗?想象我想每分钟检查一次服务器,如果我们将应用程序扩展到100个用户,它将每分钟给我100个查询.拥有套接字在系统资源上会"更便宜"吗?

  • socket.io会成为移动设备的问题吗?带宽和表现.服务器的响应始终是JSON格式的信息.

  • 我读到now.js可以用于此但似乎不再支持该项目,所以不确定是否使用它将是一个好主意.

  • 两种方法的缓存如何?我正在考虑为每个用户创建一个缓存文件,这将由服务器端的node.js更新.我想这可以用ajax很好用但是socket.io怎么样?

  • socket.io与许多浏览器完全兼容是不是真的?我的应用程序将更专注于移动设备,我认为这可以让我考虑选择ajax.

  • 有建议吗?

我希望这可以清除我的思想和处于相同情况的其他人:)谢谢

ajax websocket node.js socket.io-1.0

11
推荐指数
1
解决办法
1万
查看次数

window.onload = function(){..}/window.onload = function(){..}();

我在项目中使用以下代码,该代码无效:

window.onload=function(){
 //code here
};
Run Code Online (Sandbox Code Playgroud)

但如果我在最后添加()它的工作原理:

window.onload=function(){
 //code here
}();
Run Code Online (Sandbox Code Playgroud)

我的问题是,有什么区别?()最后是什么?

我认为第一个不起作用,因为其他地方的"onload"已被称为杀死这个.

如果我总是使用第二个选项,它会有相同的行为吗?

javascript

9
推荐指数
2
解决办法
237
查看次数

Redux 在 Reactjs (web) 中的功能组件

我写这个问题是因为我想请你帮忙如何在我的功能组件上使用 redux。我查看了 React 组件的其他示例,但我无法理解如何在功能组件中获取“存储”值。

我的想法是用我的

store.getState()

在我的功能组件中检查状态并与 UI 交互,但我无法实现。

请问有什么帮助吗?

例如,一个功能组件:

import React from 'react';
import withStyles from 'isomorphic-style-loader/lib/withStyles';
import s from './Header.css';
import { Navbar, Nav } from 'react-bootstrap';
import HeaderMenu from '../HeaderMenu';
import cx from 'classnames';

function Header() {
  return (
    <Navbar fluid fixedTop id="Header" className={s.navContainer}>
      <Nav block className={cx(s.HeaderTitle, s.hideOnSmall)}>Project title</Nav>
      <HeaderMenu />
    </Navbar>
  );
}

export default withStyles(s)(Header);
Run Code Online (Sandbox Code Playgroud)

如何在我的 Header 组件中使用“store”对象?它适用于我的 App 组件,只是我不知道如何在我的组件中使用它。

我的问题是:

  • 我应该使用操作来检索状态吗?
  • 我应该将商店对象组件传递给组件属性吗?

提前致谢!

编辑 :

我正在使用https://github.com/kriasoft/react-starter-kit 和 redux 分支https://github.com/kriasoft/react-starter-kit/tree/feature/redux

javascript reactjs redux

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

滑动后的滑块 jQuery UI 方法

我有下一个问题。我使用 jQueryUI 的滑块,它工作得很好,但我想做的是在移动滑块并释放鼠标时做一些事情。

问题是,如果它有 5 个值,从 0 到 4,如果我从 0 移动到 4,它会加载一个函数 4 次。

        $('#sliderTime').slider({
            orientation: 'horizontal',
            value:1,
            min: 0,
            max: 5,
            step: 1,
            animate: true,
            slide: function( event, ui ) {
                var value = ui.value;               
                dostuff(value);
            }
        });
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui slider

4
推荐指数
1
解决办法
3404
查看次数

来自Guzzle的PHPUnit和模拟请求

我有一个具有以下功能的类:

public function get(string $uri) : stdClass
{
    $this->client = new Client;
    $response = $this->client->request(
        'GET',
        $uri,
        $this->headers
    );

    return json_decode($response->getBody());
}
Run Code Online (Sandbox Code Playgroud)

如何从PHPUnit模拟请求方法?我尝试了不同的方法,但它总是尝试连接到指定的uri.

我尝试过:

    $clientMock = $this->getMockBuilder('GuzzleHttp\Client')
        ->setMethods('request')
        ->getMock();

    $clientMock->expects($this->once())
        ->method('request')
        ->willReturn('{}');
Run Code Online (Sandbox Code Playgroud)

但这没效果.我能做什么?我只需要将响应模拟为空.

谢谢

PD:客户端来自(使用GuzzleHttp\Client)

php phpunit mocking laravel guzzle

4
推荐指数
1
解决办法
4857
查看次数