Подскажите в какую сторону стоит копать
//main.js
angular.module("myApp", []);
//app.component.js
angular.module("myApp").component("body", {
controller: MyAppComponent,
template: '<a href="javascript:void(0)" ng-click="$ctrl.OnStart()">start</a><br /><a href="javascript:void(0)" ng-click="$ctrl.OnStop()">stop</a><my-timer start="$ctrl.start"></my-timer>'
});
function MyAppComponent() {
this.start = false;
this.OnStart = function () {
this.start = true;
};
this.OnStop = function () {
this.start = false;
}
}
//timer.component.js
angular.module("myApp").component("myTimer", {
controller: MyTimerComponent,
bindings: { start: "<" },
template: "<div>{{$ctrl.time}}</div>"
});
function MyTimerComponent($timeout) {
var _start, _cancel, _time = 0;
function OnTime() {
_cancel = $timeout(OnTime, 1000);
_time++;
}
function Start() {
if (_start) return
_start = true;
_cancel = $timeout(OnTime, 1000);
}
function Stop() {
if (_start) {
$timeout.cancel(_cancel);
_time = 0;
_start = false;
}
}
Object.defineProperty(this, "start", {
get: function () {
return _start;
},
set: function (value) {
if (_start != value) {
if (value)
Start();
else
Stop();
}
}
});
Object.defineProperty(this, "time", {
get: function () {
return _time;
}
});
this.$onDestroy = Stop;
}
chrome.windows.create({"url": url, "incognito": true});
$color: blue;
h1 {
color: $color;
}
<script type="text/javascript" src="myscript.js?ver=3">
И если вы обновите эту цифру, то браузер запросит новую версию.var maxHeight = 0;
var fn = function() {
var itemHeight = parseInt($(this).outerHeight());
if (itemHeight > maxHeight) maxHeight = itemHeight;
};
for (var i = 0, j = $items.length; i < j; i += perRow){
maxHeight = 0;
var $row = $items.slice(i, i + perRow);
$row.each(fn);
$row.css('height', maxHeight);
}
var promise = $http.get('data/category.json');
promise
.then(
function(data){
$scope.category = data
},
function(error) {
console.log(error);
}
);
promise.then(function1).then(function2).then(function3)
var http = require('http');
var ipTables = {};
var server = http.createServer((req, res) => {
//Ваш обработчик запроса или express/connect вместо него
});
server.on('connection', socket => {
var ip = socket.address().address;
var time = Date.now();
if(ip in ipTables) {
if(time - ipTables[ip].time > 3000) {
ipTables[ip] = {
count : 1,
time
};
return;
}
ipTables[ip].count++;
ipTables[ip].time = time;
if(ipTables[ip].count > 100) {
socket.end('HTTP/1.1 429 Too Many Requests\n\n');
socket.destroy(); //Обрываем соеденение, так как ip ломится слишком часто
}
return;
}
ipTables[ip] = {
count : 1,
time
};
});
server.listen(80);
И 2ой вопрос, есть ли какая нибудь штука эмулирующая браузер сафари, что бы было удобнее тестировать?
P.S. не владею macos