Я понимаю, что хорошо, когда программист знает матмат программисту жизненного не обходим, без него никак...
</script>
нужно разбивать:$('.map').html('<script charset="utf-8" async src="https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A45374b4f36193c2c3bb5a22a9bffed35b78e3e041596ce43450258bbf7529fad&width=100%25&height=598&lang=ru_UA&scroll=false"> </sc' + 'ript>')
var script = document.createElement('script');
script.async = true;
script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A45374b4f36193c2c3bb5a22a9bffed35b78e3e041596ce43450258bbf7529fad&width=100%25&height=598&lang=ru_UA&scroll=false';
$('.map').append(script);
Что не так с кодом js?он некорректный с самой первой строки...
// тут очевидно было пропущено объявление переменной куда сохраняем полученный из DOM canvas
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
// вангую, что тут не объявленные переменные, и их нужно объявить
var x = 0;
var y = 0;
var x1 = 0;
var y1 = 0;
var g = 4;
var b = 7;
// тут норм, но все же стоит включить себе линтер
// ибо порядок в коде == порядок в голове
var ground1 = new Image();
ground1.src = "Ground.png";
var pick1 = new Image();
pick1.src = "Pick.png";
// а вот в функции draw началась полная дичь...
function draw() {
ctx.clearRect(0,0,316,632); // очистку перенес внутрь функции отрисовки
// тут я вырезал addEventListener - ибо добавлять нового подписчика на каждой отрисовке - дичь полнейшая
// пристрелите того, кто Вас этому научил, так Вы сделаете этот мир лучше
if(g < b) {
ctx.drawImage(ground1, x, y);
x+=32;
if(x-32 > 290){
x = 0;
y+=32;
}
if(y-32 > 578){
y = 0;
x = 0;
}
}
// я так думаю эту картинку надо рисовать после фона
ctx.drawImage(pick1, x1, y1);
requestAnimationFrame(draw); //зациклим анимацию
}
// анимировать что-то по таймеру плохая затея, есть более подходящие инструменты
requestAnimationFrame(draw);
// подписку на событие клавиатуры вынес из отрисовки
// а саму отрисовку выкинул из обработчика
// его дело переменные пересчитывать, а рисовать будет draw
document.addEventListener("keydown", function pick(e) {
if(e.keyCode == 87){
y1-=32;
}
if(e.keyCode == 65){
x1-=32;
}
if(e.keyCode == 83){
y1+=32;
}
if(e.keyCode == 68){
x1+=32;
}
});
(node:13579) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
10% building 0/1 modules 1 active ...aravel-vue/resources/js/entry-server.js 10% building 0/0 modules 0 active
webpack is watching the files…
const webpack = require('webpack')
const ProgressBarPlugin = require('progress-bar-webpack-plugin');
//создадим мультикомпилер из наших конфигов:
const compiler = webpack([
require('./webpack.config.js'),
require('./webpack.server.config.js')
]);
//создадим прогресс плагин и скормим ему компилер
new ProgressBarPlugin({
// тут конфиг для прогресса
}).apply(compiler);
module.exports = compiler => {
// тут в основном будет Ваш код, но с некоторыми добавлениями
// во-первых, подключим мидлварь там где подключаем остальные модули
const devMiddleware = require('webpack-dev-middleware');
// ну и где нить его отдадим экспресу
// если server.js где то может без webpack запускаться,
// то стоит обернуть это в if(compiler) { }
app.use(devMiddleware(compiler));
// и опять же, если server.js где то может без webpack запускаться
// то нужно как то запускать данную функцию если ее никто не запустит
// добавим переменную флаг, чтоб это отслеживать
isRunned = true;
};
// а объявим наш флаг вне функции
let isRunned = false;
//ну и если по nextTick она еще не была запущена, то запустим
process.nextTick(() => isRunned || module.exports());
require('./server.js')(compiler);
// запустим компилер в режиме watch:
compiler.watch(err => {
if(err) console.error(err);
});
// и подключим server.js (на этот раз можно без его изменения)
require('./server.js')
time node -p '(process.memoryUsage().heapUsed/1048576).toFixed(2)+"M"'
запускаем на своем сервере и любуемся оверхедом от запуска голой ноды...3.71M
real 0m0,076s
user 0m0,064s
sys 0m0,012s
class Pizza {
constructor() {
this.crust = prompt('Choose your crust: ');
this.toppingsCount = +prompt('How many toppings do you want?') || 0;
this.toppings = [];
}
makeToppings() {
const {toppings, toppingsCount} = this;
for(let i = toppingsCount; i--;) {
toppings.push(prompt('Choose your topping: '));
}
}
makePizza() {
const {crust, toppings} = this;
return `Your order is done! You choose ${crust} crust with these toppings: ${toppings.length ? toppings.join(', ') : 'nothing'}`;
}
}
let personalPizza = new Pizza();
personalPizza.makeTopping();
console.log(personalPizza.makePizza());
import chain from '@bingo347/fn/mappers/chain';
import extractField from '@bingo347/fn/mappers/extractField';
// создаем функцию для безопасного извлечения
const getBCDE = chain(
extractField('B'),
extractField('C'),
extractField('D'),
extractField('E')
);
// извлекаем
const ABCDE = getBCDE(A);