Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Работа над сайтом > HTML/DHTML/CSS/JS/VB

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.04.2015, 13:11
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 1  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
По умолчанию Нужен совет по подключению классов в JS-проекте

В NodeJS есть штатный механизм подключения модулей

Код:
var misc = require('./misc');
Есть необходимость в аналоге для браузерного JS. Есть какое-нибудь готовое опробованное решение?

ЗЫ. Обязательно чтобы отладчик работал. Потому что при сборке на лету некоторыми способами все в целом работает, но тот же FireBug не может показать строчку с ошибкой, если она возникает.

Старый 14.04.2015, 13:18
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 2  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Речь идет о произвольном коде или конкретно о NodeJS?
И что подразумевается под "классами"?
__________________
Поймай яблоко 2!

Старый 14.04.2015, 13:38
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 3  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Речь идет о проекте на чистом JS для работы клиентской части приложения. Если точнее, то там разрабатывается движочек, использующий возможности html5.

Хотелось бы, чтобы в итоге проект выглядел примерно как проект на AS3, т.е., один класс - один файл, в начале каждого файла с классом был указан импорт, все само собирается и биндится. Т.е., примерно как require в NodeJS или require_once в PHP.


Под классами в данном случае подразумевается их реализация на JS.

Код:
function Animal(name) {
  this.speed = 0;
  this.name = name;

  this.run = function(speed) {
    this.speed += speed;
    alert( this.name + ' бежит, скорость ' + this.speed );
  };

  this.stop = function() {
    this.speed = 0;
    alert( this.name + ' стоит' );
  };
};

var animal = new Animal('Зверь');

ЗЫ. Пишу не я, пишет коллега, но я вижу, что он зарылся и не может найти решения. По крайней мере, те решения, которые он нашел к текущему моменту, не подходят.

Старый 14.04.2015, 13:48
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 4  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
1. Достаточно прописать в <head> все используемые скрипты. Начинать работу следует по факту полной загрузки страницы.

2. Использовать минимизатор, который собирает все отдельные js-файлы в один, который указывается в том же <head>.

P.S.
И да, "классы" немного по-другому имитируются, через прототипы.

Добавлено через 13 минут

Пример объявления "класса":
Код:
// Это наш класс. Конструктор.

var Animal = function(name) {
    this.speed = 0;
    this.name = name;
};

// Это пример статических полей и методов.

Animal.CLASS_DESC = "Животные всякие";
Animal.ping = function() { console.log("Мы тут, пасемся!"); };

// Это методы. Они все будут публичными. Можно как-то намутить
// приватные, но там черт голову сломает, потому нуегонафиг.

Animal.prototype.run = function(speed) {
    this.speed += speed;
    console.log(this.name + ' бежит, скорость ' + this.speed);
};

Animal.prototype.stop = function() {
    this.speed = 0;
    console.log(this.name + ' стоит');
};
Вот этот код нам необходимо загрузить в самом начале описанными выше способами. После загрузки страницы можно уже использовать его:
Код:
console.log(Animal.CLASS_DESC);
var animal = new Animal("Зверь"):
animal.run(10);
animal.stop();
__________________
Поймай яблоко 2!


Последний раз редактировалось Zebestov; 14.04.2015 в 14:02.
Старый 14.04.2015, 14:32
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 5  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
Для отладки гуглите source map, для require browserify.

И привата в js нет. Многие js разработчики приватом называют замыкание.
Они привыкли писать модульно и не создавать больше одного модуля на приложение,
по этому для них замыкание действительно имитирует приват. Но для тех кто создает
более одного модуля, приватная скопа становится общей для всех инстенсов.
Еще есть в шестой версии символ и что-то ещё призванное имитировать приватность..
Но и к таким приватным свойствам можно будет добраться.

Старый 14.04.2015, 14:44
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
ок, спс.
посмотрим в эту сторону тоже.

Старый 14.04.2015, 14:52
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 7  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
И раз у Вас такие скудные познания в js, то я бы ещё посоветовал посмотреть в сторону препроцесоров babelJS или typescript. Если появятся мысли типа - "я не буду х использоваться, я же программист, я буду на чистом писать". Выкиньте эти мысли из головы.

Старый 14.04.2015, 15:05
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 8  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
посмотреть в сторону препроцесоров babelJS или typescript
да, это разумно


Кстати, а никто не подскажет нормального форума по JS (в частности по проектам на JS)?
Javascript.ru не предлагать.


Последний раз редактировалось mikhailk; 14.04.2015 в 16:17.
Старый 14.04.2015, 18:09
OlmerDale вне форума Посмотреть профиль Отправить личное сообщение для OlmerDale Найти все сообщения от OlmerDale
  № 9  
Ответить с цитированием
OlmerDale
[+1 09.05.15]

Регистрация: Jan 2015
Сообщений: 113
Не знаю почему, но сложилось такое мнение, что в as3 люди воспитанные, максимум могут промолчать.
В php наоборот, одни оборотни, которые друг перед другом выделываются и постоянно грызутся, как собачки.
JS же что-то среднее между первым и вторым. На начальном этапе Вам все разжуют и объяснят, но если копнуть чуть глубже то и послать могут, но чаще всего просто скажут, что каждый должен дойти до всего сам.
Но и ругать их нет причин, так как js это бескрайние просторы космоса в котором варятся все у кого нет своего дисплей листа, как это есть у нас. А все языки разные и люди разные и все хотят свою толику внести, что превращает js во вселенную. И если Вы считает что Вам ответят на вопрос "какой фраймворк" или "какой препроцессор лучше", то нет. Как Вам ответить если вряд ли найдется человек, который их все пробовал и сравнивал. В as3 есть Starling и его хватает заглаза и его все и всякому советуют, а в js даже ещё полноценного игрового движка нет. Даже не все режимы наложения в webgl реализованы.

И как заключение можно лишь сказать, что если у Вас нет друга гуру, то приготовьтесь с полгода все свое время потратить на изучение технологий.

Да и сколько нормальных форумов по проектам на as3 Вы знаете? Я таких не знаю.
Или Вы готовы потратить неделю времени на объяснения создавая себе конкурента, которых в js просто миллионы?

Старый 14.04.2015, 19:02
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 10  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
И как заключение можно лишь сказать, что если у Вас нет друга гуру, то приготовьтесь с полгода все свое время потратить на изучение технологий.
На самом деле, я там в первом посте написал, что на JS пишу не я, а мой коллега.
Но я ему обрисую ситуацию.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:32.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:32.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.