влиза във функцията StartClientServer и влиза в цикъла while(), не излиза оттам. и се създава само един PeerNode. Когато създавам PeerNode, трябва ли да поставя прослушването за код на TCP връзка и thread.start..etc в цикъл while, за да може да слуша за повече заявки?

person user5260143    schedule 23.02.2014    source източник
comment
stackoverflow.com/questions/21175222/   -  person RainerAtSpirit    schedule 25.02.2014


Отговори (2)


Това мирише на това, че го правите по грешен начин.

Очевидно изграждате изгледите си в края на сървъра, изпълнявате там логика, която деактивира/разрешава контроли и т.н. Сега наистина се сблъсквате с проблеми, защото ако HTML е кеширан, такава е и логиката, използвана за изграждането на този HTML.

Можете да хакнете пътя си през това, като „изчистите кеша“ при излизане. Но какво ще стане, ако в бъдеще правата на даден потребител могат да бъдат променени, докато той все още е влязъл? Трябва да измислите още един хак, за да работи това. В крайна сметка ще създадете тон спагети код, който е много крехък.

Вместо това изгледите, АКО искате да ги кеширате, НЕ трябва да съдържат никаква логика. Логиката, която активира или деактивира елементи, както и всичко останало, трябва да се диктува от вашия JavaScript и данните, които получавате от бекенда. Изгледът е просто HTML шаблон, който консумира данните, които са в модела на изглед на JavaScript.

По принцип трябва да промените съзнанието си и да започнете да използвате Durandal/Knockout по начина, по който трябва да се използва: MVVM, обвързвания във вашия HTML, които задават състоянието на DOM въз основа на данни във вашия изгледмодел. Това, което правите в момента, е „твърдо кодиране“ на състоянието на HTML, когато изобразявате HTML на сървъра, и се опитвате да хакнете своя път през нединамичния характер на това решение.

Ако все пак искате да продължите текущия си ред на кодиране: лесният начин за постигане на пълно нулиране на вашия JS и HTML е да направите пълно опресняване на страницата, като по този начин „напуснете вашия SPA“.

person Hans Roerdinkholder    schedule 24.02.2014

с помощта на urlArgs можете да деактивирате кеширането, добавете това към вашия require.config:

urlArgs: "_disable_cache_=" +  (new Date()).getTime()
person Mehran Hatami    schedule 23.02.2014
comment
но искам деактивирането на кеширането да е само при излизане-влизане, а не при навигация между страници - person user5260143; 23.02.2014