Require.js проблем под Chrome


1

Здравейте,

имам някакво бъгче във файла, който тествам за SPA. Под firefox тръгва, но под Chrome се спъва. Някой има ли идея защо? Кода е следния:

console.log('Main/app.js is loaded.');

(function () {
    require.config({
        paths: {
            'jquery': '../Scripts/jquery-2.1.1',
            'sammy': '../Scripts/sammy-0.7.4',
            'logic': 'logic'
}
    });

    require(['jquery', 'sammy', 'logic'], function (jquery, sammy) {
        console.log('requiring...');
        //---
        var app = sammy("#wrapper", function () {
            this.get("#/", function () {
                console.log('starting sammy...');
                initMainPage();
            });
        });

        app.run("#/");
        //---
    });
}());

А самата грешка е, че не ги намира:

Main/app.js is loaded. app.js:1
  1. Uncaught ReferenceError: jQuery is not defined sammy-0.7.4.js:2120
logic requested. logic.js:1
requiring... app.js:13
  1. Uncaught TypeError: undefined is not a function app.js:15

 




Отговори



4
Пусни си хеширането на браузъра , това се получава защото още в конструктора на na Sammy депендва на Jquery и ако то не е заредило и сами-то гърми . Аз съм си спрял кеширането и от 10 рефреша тръгва 3 пъти , но когато е пуснато върви без проблем защото jquery-to е заредено

от TeodorTunev (3061 точки)


0
Кешира си. Не е от това.

от victor.velchev (1225 точки)


3

Освен това, което ти казва колегата по-горе може да направиш и следното :

require(['jquery'], function () {
        require(['sammy'], function (sammy) {
                // code
         });
});
 
Така винаги ще ти е заредно jQuery и чак след това ще ти се зарежда sammy.js

от mita4itu (1969 точки)


0
multiple nesting на require му е майката...

от victor.velchev (1225 точки)


1

Създава се конфликт между jQuery и requre.js.  Може да си предефинираш jQuery - виж как тук, аз имах същия проблем и се оправи... тръгва от раз и не зависи от хеширането... jQuery има глобални обекти $ и jQuery и затова стават мизерии...




0
Ето още малко информация от сайта на Require.js във връзка с използването му с jQuery: http://www.requirejs.org/docs/jquery.html

от mladenvm (235 точки)


0

Това го оправих с multiple nesting на require. Само искам да отбележа и да кажа ако някой се чуди защо jQuery.load не работи в хром и му дава грешки, ето тук е описано, че е бъгнато и не е коректно. Ако се качи в нета или през firefox работи, но локално не. Примерно $('#wrapper').load('partials/login.html'); в Chrome дава грешка, но иначе си работи. Само да кажа ако някой се чуди на такива грешки...


от victor.velchev (1225 точки)


0
:D не е бъгнато просто тези заявки изискват сервер , ajax , load , get , getJson и т.н. Firefox стартира собствен сервер и за това работи там а другаде не . Ако го пуснеш през VS или WS също ще работи

от TeodorTunev (3061 точки)

0
Да така е, но не се сетих да го подкарам през локалхоста на VS. Другия път ще се сетя. Мерси.

от victor.velchev (1225 точки)