Skip to content

Instantly share code, notes, and snippets.

View iahu's full-sized avatar
🌴
On vacation

i18u iahu

🌴
On vacation
View GitHub Profile

#前后端分离.NodeJs


##为什么要前后端分离

  1. 各种终端设备的兴起,需要我们把页面适配到更多的地方。
  2. 业务复杂,而我们希望尽可能地减少工作量,开始使用类似MV*的分层结构,使前端后分离成为必要。
  3. 前端需要处理更多的工作,希望有权操控View,Router(如:SPA的尝试)

历史发展的必然选择

@iahu
iahu / uninstall.sh
Created April 29, 2015 02:49
OSX 10.10 uninstall VMsvga2_v1.2.5
#!/bin/bash
SLE=/System/Library/Extensions
RM=/bin/rm
PKGUTIL=/usr/sbin/pkgutil
TOUCH=/usr/bin/touch
if (( $UID != 0 )); then
echo This script must be run as root, try \'sudo $0\'
exit 1
@iahu
iahu / index.ios.js
Last active October 30, 2015 01:37
react-native setState issue
/**
* Sample React Native App
* https://github.com/facebook/react-native
*/
'use strict';
var React = require('react-native');
var fs = require('NativeModules').FileSystem;
var {
AppRegistry,
@iahu
iahu / getShengmu.js
Created August 7, 2015 06:37
js获取汉字声母
var getShengmu = (function () {
var idx = -1;
var MAP = 'ABCDEFGHJKLMNOPQRSTWXYZ';
var boundaryChar = '驁簿錯鵽樲鰒餜靃攟鬠纙鞪黁漚曝裠鶸蜶籜鶩鑂韻糳';
if ( !String.prototype.localeCompare ) {
throw Error('String.prototype.localeCompare not supported.');
}
return function getShengmu(c) {
@iahu
iahu / demo.html
Created September 22, 2015 02:42
篡改“浏览器后退按钮”历史纪录 demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>demo</title>
<style>
</style>
</head>
<body>
<p>demo.html</p>
@iahu
iahu / log.js
Last active September 28, 2015 09:00
js console wrapper,can print original call code line number
var log = (function () {
if ( console && typeof console.log === 'function' ) {
if (console.log.bind) {
return console.log.bind(console);
} else {
return $.proxy(console.log, console);
}
} else {
return function () {
var log = window.__im_log = window.__im_log || [];
@iahu
iahu / outerHTML.js
Created October 29, 2015 06:49
element.outerHTML
var p = document.getElementsByTagName("p")[0];
console.log(p.nodeName); // shows: "P"
p.outerHTML = "<div>This div replaced a paragraph.</div>";
console.log(p.nodeName); // still "P";
/*
Feature | Firefox (Gecko) | Chrome | Internet Explorer | Opera Safari
Basic support | 11 (11) | 0.2 | 4.0 | 7 1.3
function getLeftMarkIndex (codeStr, idx) {
var leftCS = codeStr.slice(0, idx);
var leftMarkIdx;
var rOpenMark = /[\[\{\(]/;
var rCloseMark = /[\]\}\)]/;
var matchMarks = /([\[\{\(]|[\]\}\)])/;
var matchMap = {']': '[', '}': ']', ')': '('};
var unpairedCount = 0;
for (var i = leftCS.length - 1; i >= 0; i--) {
@iahu
iahu / safari-touchemulator.user.js
Created December 17, 2015 14:58
emulate touch events of safari(with iOS userAgent)
// ==UserScript==
// @name emulator_touch_events
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author author (uses https://github.com/hammerjs/touchemulator)
// @match http://tampermonkey.net/index.php?version=3.13.4890&ext=G3XV&updated=true
// @match *://*/*
// @grant none
// ==/UserScript==
@iahu
iahu / tips.css
Last active January 28, 2016 05:48
mobile-tips.js
.mo-tips {
position: fixed;
top: 50%;
left: 50%;
width: 240px;
/*min-height: 100px;*/
margin-top: -50px;
margin-left: -120px;
background-color: #fff;