существует ли в сети скрипт определения всех действующих user-agent по браузерам, их версиям и операционным системам или "все сам, все сам, ручками"?
если имеется такой скрипт, то интересно его поведение
неужели придется как-то отслеживать все новые версии браузеров
стоит ли оно того?
Но в тестовом режиме, загружая систему примерно на 100 000 запросов с 2000 потоков (через tomact: ab -n 1000000 -c 3000 ") проц всё ещё остаётся загружен всего на 36%.
увеличить использование процессора
и ускорить выполнение
не обязательно ходят вместе. Процессор может простаивать по причине ожидания ввода-вывода, но так же и потому, что он легко справляется с текущей нагрузкой.@Override
public void start(Stage primaryStage) throws Exception {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("mainframe.fxml")); //смотрит уже в resources
primaryStage.initStyle(StageStyle.TRANSPARENT);
primaryStage.setScene(new Scene(fxmlLoader.load(), 1100, 700));
primaryStage.show();
}
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
...
<form:form modelAttribute="formData" method="post">
<c:forEach items="${formData.sprints}" var="sprint" varStatus="status">
<input type="text" name="sprints[${status.index}]['name']" placeholder="Name"></td><br>
<input type="text" name="sprints[${status.index}]['phone']" placeholder="Phone"><br>
<input type="text" name="sprints[${status.index}]['email']" placeholder="E-Mail"><br>
</c:forEach>
<input type="submit" value="Сохранить">
</form:form>
public class SprintsForm {
private List<Map<String, String>> sprints;
public List<Map<String, String>> getSprints() {
return sprints;
}
public void setSprints(List<Map<String, String>> sprints) {
this.sprints = sprints;
}
}
@Controller
@RequestMapping("/")
public class FormController {
@RequestMapping(method = RequestMethod.GET)
public ModelAndView showForm() {
SprintsForm formData = new SprintsForm();
return new ModelAndView("form" , "formData", formData);
}
@RequestMapping(method = RequestMethod.POST)
public ModelAndView handleForm(@ModelAttribute SprintsForm formData, BindingResult result) {
if (result.hasErrors())
return new ModelAndView("form", "formData", formData);
...
}
}
public interface LoginPresenter{
void clickOnSignInBtn(); //презентер после вызова этого метода дергает методы модели, выполняющие подключеник к апи и вход, и вызывает showSelectionWindow() c названиями аккаунтов, полученных из модели.
void accountSelected(String s); // после того как юзер выбрал аккаунт, вьюшка дергает этот метод с параметром, какой аккаунт выбран, тут не обязательно должна быть строка, после этого презентер дергает соответствующий метод из вашей модели, выполняющий авторизацию уже определенного юзера, если все хорошо - вызывает
//openMainActivity() и передает туда инфу для интента, если нет - showError()
}
public interface LoginView {
void showSelectionWindow(List<String> accountsNames); //показать меню выбора.
void openMainActivity(String arg); // В реализации вьюшка кладет в интент аргумент и запускает новую активити.
void showError(String msg);
/* Сюда можно добавить другие нужные вам методы, аля
showProgress(), showMessage()
*/
}