Code Monkey home page Code Monkey logo

web1's Introduction

Лабораторная работа №1. Веб-программирование. СППО

Вариант 1822

Задание

Разработать PHP-скрипт, определяющий попадание точки на координатной плоскости в заданную область, и создать HTML-страницу, которая формирует данные для отправки их на обработку этому скрипту. Параметр R и координаты точки должны передаваться скрипту посредством HTTP-запроса. Скрипт должен выполнять валидацию данных и возвращать HTML-страницу с таблицей, содержащей полученные параметры и результат вычислений - факт попадания или непопадания точки в область. Предыдущие результаты должны сохраняться между запросами и отображаться в таблице. Кроме того, ответ должен содержать данные о текущем времени и времени работы скрипта.

Разработанная HTML-страница должна удовлетворять следующим требованиям:

  • Для расположения текстовых и графических элементов необходимо использовать блочную верстку.
  • Данные формы должны передаваться на обработку посредством POST-запроса.
  • Таблицы стилей должны располагаться в отдельных файлах.
  • При работе с CSS должно быть продемонстрировано использование селекторов дочерних элементов, селекторов элементов, селекторов псевдоклассов, селекторов идентификаторов а также такие свойства стилей CSS, как наследование и каскадирование.
  • HTML-страница должна иметь "шапку", содержащую ФИО студента, номер группы и номер варианта. При оформлении шапки необходимо явным образом задать шрифт (serif), его цвет и размер в каскадной таблице стилей.
  • Отступы элементов ввода должны задаваться в процентах.
  • Страница должна содержать сценарий на языке JavaScript, осуществляющий валидацию значений, вводимых пользователем в поля формы. Любые некорректные значения (например, буквы в координатах точки или отрицательный радиус) должны блокироваться.

.eslintrc

module.exports = {
    extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'eslint-config-airbnb'],
    parser: '@typescript-eslint/parser',
    plugins: ['@typescript-eslint'],
    root: true,
};

.stylelintrc

{
  "extends":
    [
      "stylelint-config-standard",
      "stylelint-config-rational-order",
      "stylelint-prettier/recommended"
    ],
  "plugins": ["stylelint-order"],
  "rules": {
    "selector-pseudo-class-no-unknown": true,
    "block-no-empty": true,
    "unit-allowed-list": ["%", "pt", "px", "s"],
    "color-no-invalid-hex": true,
    "selector-max-id": 1
  }
}

.prettierrc

{
  "semi": true,
  "trailingComma": "none",
  "singleQuote": true,
  "printWidth": 80
}

web1's People

Contributors

tumbler-cp avatar

Watchers

 avatar

web1's Issues

Refactoring

  1. Переписать на TS (если где остался js - выпилить из проекта файлы)

  2. Добавить stylelint, eslint (правила от airbnb взять) , prettier- привести в порядок оформление кода/стилей

  3. По ТЗ у вас должно сохранятся состояние между запросами. Полагаю, что когда я обновляю страницу - данные не должны слетать (в рамках SESSION_ID)

  4. найдите конвенции от air bnb и поправьте naming переменных/методов и тд

    let x_value: number;

  5. переписать на async-await

  6. web1/client/valid.ts

    Lines 32 to 49 in 5f7addf

    let data_out = () => {
    let formData = new FormData();
    formData.append('x', x_value.toString());
    formData.append('y', y_value.toString());
    formData.append('r', r_value.toString());
    fetch('php/main.php', {
    method: 'POST',
    body: formData
    }).then(response => {
    return response.text();
    }).then(table => {
    table = table.slice(0, -1);
    document.getElementById("table-holder").innerHTML = table;
    }).catch(error => {
    console.error('Ошибка: ', error);
    })
    }
    у метода больше чем 1 обязанность - не только получаем, но еще и как-то процессим данные прямо в html- разделить логику

  7. запихнуть сразу в html - ваш способ хорош только если вы динамически генерите кнопки и навешиваете на них handler-ы

  8. (продолжение п7) + надо избегать такого кода -- сложно сказать, как именно должен отрабатывать код, если вы тупо захотите импортнуть в будущем функцию из файла valid.ts (переименовать, кстати); будет ли известен button на момент вызова функции onclick (и будет ли она вообще определена на тот момент)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.