标签 代码段 下的文章

Rails WebSocket介绍

那道卡了一个学期的生产者消费者问题,今夏开工,和小新讨论了半天怎么怎么折腾,然后踩到了不少坑。

需要用到Java+Rails+JavaScript,题目要求,不得不用。Java用于生产者消费者模型,剩下的用于前端显示。

最初的设计是轮询,换句话说,类似于Java写入数据库,然后刷新定时刷新读写,一遍遍去查找更新,这样当然是可行的,但是——好Low。

现在我们有了一个更好的解决方案,用WebSocket实现动态的、即时的更新。当然当初知识一个小想法,WebSockeet对我还很抽象,所以咨询了一下用过的小伙伴小新,得知差不多一个意思,查了各种资料,开工。

WebSocket的原理性介绍:https://github.com/abbshr/abbshr.github.io/issues/22

简单的来说是在运输层用TCP来进行通讯,而不是用HTTP协议,这很好理解嘛,跟Socket差不多一个意思(本来以为这辈子都不会用Socket因为不搞桌面开发)。

- 阅读剩余部分 -

Rails+AngularJS 从登陆漫谈Session以及Promise

分几篇写太麻烦了,这是Rails+AngularJS坑中的最后一篇,我们讲讲Rails中的Session以及AngularJS中的Promise。

Rails+AngularJS自己折腾是因为教程写的又臭又长,而且不是中文,我在想,我只是把Rails当做一个Api,是不是根本用不着那么多麻烦,不就是传个json出来么?

Yes,That's right.

我们来回忆一下:Rails 实现用户登录存取Session思路总结当时篇尾戏剧性的变化,这次看的是http://guides.ruby-china.org,效果好很多,需要什么直接去查。

- 阅读剩余部分 -

AngularJS directive如何进行ng-repeat的遍历输出

昨天真的依旧踩到了不少坑,这是其中的一个。

在directive里,其实scope究竟是拿来干嘛的,就目前我看来可以绑定传值,那么为什么我们要传值。

经过这次坑,总算是明白了不少。

Template或者TemplateUrl可以说是一个封闭的环境,换言之,你在外面用的在这里并不能用,如果需要用,要怎么办呢?用Scope把值传进去。

所以需要用ng-repeat的时候,最好的方法其实是将ng-repeat以template的形式进行遍历,假设我们有一个需要遍历的变量message,在外围我们使用: list="message"

接下来我们对list进行双向绑定,也就是说两边随便哪一边变了他都会改变,用=:

- 阅读剩余部分 -

AngularJS 让contentEditable支持ng-model

以前在一个网站上看到一个可以修改的框,以为是input,结果没想到是div,顿时觉得这是黑科技啊!!

然而并不是,后来我才知道有个attr叫做contentEditable,介绍见:http://www.w3school.com.cn/tags/att_global_contenteditable.asp

换言之这个so easy啦。

那么问题来了,AngualarJS里,我们可以在input里用ng-model来进行双向绑定,那么contentEditable呢?AngularJS目前并没有直接提供支持,但我们可以自己写。

使用一个directive就能搞定这个:

/* 注册contentEditable支持ngModel */
app.directive('contenteditable', function() {
  return {
    require: 'ngModel',
    link: function(scope, element, attrs, ctrl) {
      // view -> model
      element.bind('blur', function() {
        scope.$apply(function() {
          ctrl.$setViewValue(element.html());
        });
      });

      // model -> view
      ctrl.$render = function() {
        element.html(ctrl.$viewValue);
      };

      // load init value from DOM
      ctrl.$render();
    }
  };
});

Rails+AngularJS 实现Ajax前后端完全分离

因为网上的教程字数太多,而且都是英文的(没错这才是重点)。想要前后端完全分离的我完全懒得考虑这么多,就自己开始折腾能不能很轻松的完全只是用Control和Model而不管View,不引入gem,现在简单的小demo终于成功了。

Rails的初始准备见:Rails 处理跨站请求

准备完这个,接下来我们就只要管Control怎么写就行了。

首先来尝试一下get,最简单。

    def index
        json_str = {"xx" => "hello"}.to_json
        render :json=>json_str, status=>'200'
    end

- 阅读剩余部分 -

Rails 处理跨站请求

AnguarlJS中的方法虽然可以直接进行jsonp跨域请求,不用像jQuery那样包装jsonp,不过依旧需要后端开启跨域,否则仍旧没办法数据交互:

已阻止跨源请求:同源策略禁止读取位于 http://localhost:3000/create 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

- 阅读剩余部分 -

Java 单例设计模式的两种实现

在看视频教程的时候看到的第一种设计模式,总体而言还是比较简单的,单例设计模式是限制实例化,只能有一个实例,就是所谓的单例。

实际上,只要做到三点就满足了单例设计模式:

  1. 构造函数私有化
  2. 类中创建一个实例对象
  3. 提供一个方法获取该对象

- 阅读剩余部分 -

PHP PDO详解攻略

在这里,有一篇名为php-使用-pdo-存取資料庫一存取步驟與常用功能介紹,感觉比大陆那些大网站们写的好多啦(* ̄︶ ̄)y y,1=^_^)y很好懂呢。

官方手册系列传送门

基本上去年在学PHP的时候也写过一篇,PHP 数据库抽象层PDO的使用

以上基本上是所有的参考文章,我们把PDO分为这样几步吧,这次我也是这么按照步骤做下来的:

  • 连接数据库
  • 编写SQL语句
  • 准备
  • 绑定相关值
  • 执行
  • (如果是查询)获取

- 阅读剩余部分 -