[Powered by Google Translate] [주 9]
[데이비드 J. Malan - 하버드 대학교 (Harvard University)]
[이 CS50입니다. - CS50.TV]
괜찮아요. 다시 오신 것을 환영합니다. 이 CS50이며,이 주 9의 시작입니다.
오늘 우리는 C의 맥락에서 더 이상 디자인에 특히 초점을
하지만 PHP의 컨텍스트와 SQL의 비트와 자바 스크립트의 비트에
특히 pset 7 두의 끝을 향해 있으며 최종 프로젝트.
사실, 경우 귀하의 최종 프로젝트에 그 시점에 있습니다
아마 적어도 몇 가지 생각을 제공하기 시작 한 시간 때문에 전에 현재의 위치를
귀하의 최종 프로젝트와 여러분이 1 또는 2 친구와 공동 작업하고 싶은 생각,
당신이 연결하는 데 문제가있는 경우는, 친구들 말을
cs50.net/partners/form에서 양식을 작성하여 주시기 바랍니다.
단지, 당신이 생각하는 프로젝트의 어떤 종류의 당신이 누군지를 부탁합니다
당신이 방금 물류 이유로 곳 살고 있습니다.
그리고 당신은 다음 주 정도가 스프레드 시트 URL을 통해에서 눈을 유지하려면
그런 다음 Google 문서의 읽기 전용 버전을 볼 수 있습니다
있는 우리는 정보를 수집하고 있습니다.
당신이 누군가와 함께 일을하고 싶다면, 모든 방법으로 사람들에게 다가 자유롭게
그 메커니즘을 통해.
그러나 사람들의 대다수 일 솔로 해. 그거 정말 괜찮아요.
따라서이 의무 어떠한 방법에 생각하지 않습니다.
지난 금요일에, 그냥 저와 여기에 팀의 몇였다
대부분 빈 극장.
3 관광객들이 거기는 앉아, 그게 조금 어색했습니다 그럼.
우리가 이야기하는 것은 데이터베이스이고 우리는 pset 7 조금 이야기.
그리고 당신이 아직 동영상에 대한 그를 잡으러 발생하지 않은 경우, 괜찮아.
나는 당연한 우리가 달리 걸릴거야하는 모든 용어를 정의하도록 노력하겠습니다
금요일 강의에 따라.
>> 하지만 지금은 지점에 보내 드리도록 노력하겠습니다
단지 pset 7과 같은 일을 할 수 없다는
하지만 정말, 후드 아래에 무슨 일이 일어나고 있는지 이해
특히 우리가 functions.php 파일에 위치에 넣어하는 추상적 인 관념의 일부
당신이 궁극적으로 이해 그러니 목숨을 좀 더 쉽게하지만 할 수
훈련 바퀴 몇 주간 휴가 왔을 때 당신은 여전히​​ 살아남을 수 있도록
현실 세계에서와 아래에있는 CS50 프레임 워크없이 일을.
잘 알고있는 분들을위한이 $ _SESSION,
또는 누가 이미 금요일에 동영상을 잡은 세션은 우리가 무슨 일을하게 않습니다
PHP 기반의 웹 응용 프로그램에서?
이것은 GET과 POST하는 정신에서 비슷한 뜻 전역 변수입니다
그리고 몇 다른,하지만이 일이 도움이 뭡니까?
>> 세션이 무엇에 사용됩니까? 그래. [학생] 로그인
뭐라고 요? [학생] 로그인 실제로 로그인.
pset 7에서 우리는 로그인 촉진이 세션의 전역을 사용하는
그럼이 자동 전역에 대한 좋은 것은 그것이 연관 배열 있다는 것입니다.
연관 배열, 리콜, 그냥 배열이지만 누구의 인덱스는 더 이상 숫자가 할 필요가 없습니다
012처럼. 그들은 숫자가 될 수도 있고 아니면 그들은 심지어 문자열이 될 수 있습니다.
당신이 아직 pset 7로 다이빙 한 경우 그리고, 당신은 우리가 키라고 ID를 저장하는 기억 할 수 있습니다
값이 123 같은 경우이 연관 배열의 내부 -
무엇이든 현재 사용자의 ID에 기록입니다.
이것에 대한 동기 부여는 사용자가 로컬 호스트를 방문한 후에도 것입니다
또는 내 웹 사이트 더 일반적으로 그리고 그들은 로그인 한
그들은 링크를 클릭하거나 5 분 내 웹 사이트에 반환하지 않는 경우에도
또는 시간 또는 하루 만 그들의 브라우저 창을 열어 둔도,
이 전역을 통해 나는 그들이가 로그인되어 있는지 기억
>> 즉, 내가 저 사용자에 대해 당신이 원하는 약간의 장기 아무것도 저장할 수 있습니다.
그리고 당신은 쇼핑 카트의 화신으로 정말로 생각할 수 있습니다.
아마존 같은 곳은 분명히, 당신은 쇼핑 카트에 물건을 놓고
하지만 HTTP, 프로토콜은 웹의 힘은 상태 비 저장입니다
의미에서 당신이 웹 사이트를 방문 할 때,
대부분의 경우에 어떤 일정한 네트워크에 연결되어 있지 않은
브라우저와 서버 사이에 있습니다.
당신은 HTML과 JPEG 파일과 GIF를 다운로드 모두, 한 즉시로
연결은 도보로갑니다 그리고 당신은 서버에서 HTML과 이것 저것의 사본을 갖추고 있습니다.
그러나 서버가 당신에 대해 뭔가를 기억하려고한다면,
부담은 실제로 해당 정보를 기록 할 수있는 서버에 있습니다.
그리고 서버를 제어 할 수 있습니다 그래서 당신은 프로그래머
이 전역 연관 배열의 내부 당신이 원하는 대부분의 아무것도 넣을 수 있습니다
그리고, 거기 사용자가 돌아 오면 다음 번입니다
그 분 이죠 심지어 일 후, 자신의 브라우저 창을 닫으하지 않는 것인지
되는 포인트 세션이 사라집니다.
그래서이 임시 저장, 너무 비 영구적이고, 그것은 멀리 가지 의미
사용자가 브라우저를 닫 자마자 - 단지 해당 탭, 종종 전체 브라우저,
이를 효과적으로 사용자를 로그 아웃.
그래서이 일이 실제로 어떻게 구현?
의 우리가 금요일에 바라 보았다 간단한 예제를 잠깐 살펴 보자.
그 익숙하지 않은 들어,이처럼 간단했다.
이 주된 목적인 생활에서 말하는 것입니다 웹 페이지입니다
내가 몇번이나이 페이지를 방문했습니다.
이 내가 방문하는 월요일에 여기 처음이므로 0 번 말합니다.
>> 하지만이 페이지를 다시로드 시작하면, 그것은, 1 시간, 2, 3, 4, 5를 말한다
이 결국 단지, 일어나, 일어나 계산에 유지됩니다
각 시간이 지나면에서 새로 고침을 클릭합니다.
그래서 어떻게 작동하는 거지? 저 counter.php이라는 파일의 안으로 들어 가자.
그 상단 부분은 파란색으로 의견이지만, 흥미로운 부분은 여기입니다.
13 호선에 우리는이 기능 session_start를 호출
그 말 그대로 당신이 액세스 할 수 있도록하려는 경우 당신이해야 할 모든 것이
이 특별한 전역은 _SESSION $라고합니다.
그게 가능한 모든 것을 가능하게하고, 우리는 가능한 모든 방법은 순간에 볼 수 있습니다.
내가하는 일이 선 16 통지합니다.
즉, 인덱스 값 - - "카운터"카운터라는 키 경우
나는 아래 줄에 어떤 역할을하고있어 다음 세션이라는 배열의 내부를 존재?
라인 18 일이란 무엇입니까?
>> [안 들리게 학생 응답] 그게 뭔데? [학생]의 값을 저장. 좋아.
그것은 새로운 지역 임시 변수에 지금 세션에 값을 보관하고 있어요
모두 소문자 달러의 카운터.
PHP가 이미 여기 좀 게으른되는 것을 확인할 수 있습니다.
우리가 INT 또는 부동이나 문자열이나 이런 건의 언급이없는주의
PHP는 약하게 입력되어 있기 때문에, 상기 당신은 변수의 유형을 지정하지 않아도
여기이 경우에조차 아직 선언되지습니다.
나는이 중괄호 내부를 선언하고 C는 달리,이 사실은 괜찮습니다.
깊이 변수의 선언을 중첩 아무리 PHP에서입니다 -
내부 내부 곱슬 괄호와 같은 곱슬 괄호의 -
그것은 그 순간에 시간에, 프로그램의 나머지 부분이 존재합니다
더 나은 또는 악화에 대해.
그게 바로 우리가하는 일이로 당신이 그것을 정의 즉시 글로벌된다.
>> 그렇지 않으면,면, 아무 세션 전역에있어 발견하지 않습니다,
내가 외관상 0으로이 변수 카운터를 초기화하는거야
따라서 단지 사용자가 전에 여기 없었습니다 가정.
그리고이 과정은 어떻게 카운터를 증가합니까?
이 연관 배열의 안에 값을 업데이트 있어요
현재 + 1 뭐든지간에 카운터는 동일한 설정하여.
나는 페이지의 HTML에 여기까지 스크롤하면, 사실은 아주 간단합니다.
내가이 페이지의 본문에이 모든 "당신은 아무개 번이 사이트를 방문한"입니다.
그리고이 PHP의 구조입니다.
당신이 할 경우 <? =이 어떤 기능을 효율적으로 동일합니다?주세요
그것은 우리가 C에서 여러 번 본 적이 printf 같은에 정말 것과
당신이 pset 7의 사양에서 이미 알고 계시 겠지만 그래도,
인쇄도 뭔가를 출력하는 기능입니다, 사실은, 형식 코드를 사용하지 않습니다
당신은 실제로뿐만 아니라 반향을 말할 수있다.
그물 효과가 궁극적으로 동일하더라도 모두 언제나 약간의 차이가있어.
이 사용 등호 그래서 것은 일의 우아한 방법 중 일종입니다
더 간결보다 달리 할 수​​ 있습니다.
말하자면이 모든 사이트는 않습니다. 이 카운터의 값을 출력합니다.
이 모든 사실은 어떻게 된 일 이죠?
당신은 일주일에 기억 될 수 정도 전에 우리는 후드 아래에 찾고 시작
웹 페이지가 경감 탭을 사용하여 운영 방식.
>> 크롬은 Mac 버전, Windows 버전, 심지어 리눅스 버전이 모두 있습니다
이 내장 된 디버거가된다 그리고 파이어 폭스와 IE 비슷한 메커니즘을 가지고
브라우저의 내부.
의는 다음에서 살펴 보자.
우리는 여기에 탭을 아주 많이 있고 왼쪽 하나가 요소임을 기억 한
그리고 HTML 및 자바 스크립트를 페이지에 얼마나 godawful 상관없이,
요소 '탭을 당신이 실제로 계층 HTML을 탐색 할 수있는 기억
그리고 멋지고 깔끔하게.
귀하는 Google이나 페이스 북과 같은 웹 사이트에서 배우려고한다면
나 정말 모든 웹 사이트는 당신이 더 나을는 것을
소스 코드에서 원시 소스를보고 반대로이 이쪽을보고,
그건 우리가 특히 Google의 사이트에서 본 적이으로 엉망이 될 수 있습니다.
내가 대신 여기에 네트워크 탭을 클릭하면,
내가이 페이지를 방문 할 때 무슨 일이 벌어지고 있는지 확인합시다.
먼저 내 캐시를 지우 보자.
나는 크롬의 설정으로 이동하고 역사에 갈거야
다음 모든 인터넷 사용 정보를 삭제합니다.
당신은 다른 목적을 위해이 일을하는 데 사용할 수 있습니다, [웃음]
하지만 개발 웹 사이트에 관한 한, 사실은 유용 -
당신이 웃을 경우 알아요. [웃음]
웹 사이트를 개발할 때 현실이기 때문에 실제로는 정말 유용합니다
캐시 HTML 파일, 캐시 된 자바 스크립트 파일과 같은 쿠키와 물건 등
실제로 머리가 지끈 거리는 될 수 있기 때문에 경우 어떤 이유로
브라우저는 일부 파일을 캐시하기로 결정 그런데도 당신은 서버에 해당 파일을 변경했습니다
하지만 브라우저는 정말 파일이 변경되었는지 실현되지 않았습니다
당신은 새로 고침 버튼을 클릭해도되므로 실제로 다시 다운로드하지 않습니다
단지 결함이 코드와 함께 있지 않은지 확인하는 가장 확실한 방법 중 하나,
이 브라우저의 동작과 함께 여러분의 브라우저에 여기에 가서하는 것입니다
더 혼란이 없어 있도록하고 단지 전체 역사를 취소합니다.
>> 당신이 정말로 편집증 환자가되고 싶으면 그리고, 브라우저를 종료, 다시 시작
그리고 예상대로 모두가 작동하는지 확인하십시오.
개발을 수행 할 때 그래서 짧은에, 캐시는 정상입니다.
그래서 여기에 우리가 네트워크 탭이 있습니다.
나는 이전에 사이트에게 9 번을 방문하지만, 내가 지금 가서 새로 고침을 클릭 해했다.
그리고 다시 아래로 0입니다.
가 실제로이 세션의 자동 전역이 구현되고 있다는 것이 얼마나 보자.
나는되었다 한 HTTP 요청을 클릭거야
이 디버깅 창 나 그 속을 살펴볼 수 있습니다.
난 여기 관심이없는 서버에서 응답을 참조하십시오.
여러 가지 방법으로 어떤 숫자로 본 적이 있어요.
그런데 기술적으로 흥미로운 것은 헤더입니다.
여기 아래로 스크롤하고, 요청 헤더에 중점을 소스보기를 클릭하면
내가보고 할게 그대로 HTTP 요청입니다
그, 그냥 내 브라우저에서 서버에 갔어요
는 과거형 GET 후 / counter.php 파일 이름하는 것
HTTP/1.1은 브라우저에서 사용하는 HTTP의 버전이었습니다.
여기이 줄은 서버의 이름이 무엇인지 브라우저에서 서버에 약간의 알림입니다
이 얘기하고 싶어하는.
그리고 이것의 나머지는 지금 관련 때때로 재미 있지만입니다.
>> 이 호기심이긴합니다.
이 문자열은하지만 암호화, 언제든지 귀하의 브라우저는 웹 사이트를 방문
당신이 사용하는 브라우저가 서버에 알리는하고 있습니다
및 사용과 그 버전을하고 있는지 운영 체제.
지금까지 CNN과 이것 저것 같은 방법을 웹 사이트를 궁금해 한면
비율이 웹, PC 사용자의 Mac 사용자를 무엇인지 알고,
IE 사용자, 크롬 사용자와 같은, 그건 때문에 우리의 브라우저의 모든
우리가 무엇인지가 매일 웹 사이트를 말하고 있습니다.
그것은 반드시, 개인 식별 정보를 포함하지 않습니다
하지만 당신의 IP 주소는 사용중인 브라우저 및 OS이며, 서버를 말해 않습니다.
이 정보가 어디 그게.
이것을 세션에 관해서는 그렇지만 어떻게 응답 헤더는 이제 더 재미있는되어 있습니다.
나 응답 옆에 소스보기를 클릭 봅시다.
여기서 흥미로운 것은 몇 가지 있습니다.
1, 우리는 200 상태 코드를 돌아 왔어.
그 모든 것이 잘되고 있다는 것을 의미하기 때문에 우리는이 상태 코드를 참조하지 마십시오.
이 곳 대조적으로 그대로 괜찮 의미합니다.
우리는 가끔 나쁜 볼 수는 무엇입니까? [학생] 404.
404, 파일을 찾을 수 없습니다 403 당신은 이미시 비틀 될 수 있습니다
금지되어있는 어떤은 chmod를 뭔가, 대부분의 가능성이 걸 잊었을 의미합니다.
그리고 다른 사람들의 무리가 있습니다.
>> 아래에서이 약간 미친 짓이야.
정말 그냥 gedit에 붙여 넣기하여 몇 분 전에이 파일을 썼다.
정말 웹이 전에 왜이 페이지는 1981 년에 만료 거죠?
거기에 무슨 일이 일어나고있는거야?
>> [안 들리게 학생 응답] 타임 스탬프. 그런데 왜?
그것은 다소 임의이지만, 실제로 유용합니다.
이건 내 브라우저로 말하는 것은 당신이 방금 이미 만료 된 요청하신이 PHP 파일입니다.
사실, 30 년 전에 만료되었습니다.
하지만 그건 정말 무슨 뜻 이죠?
단지, 사용자가이 페이지를 방문 다음 시간을 의미합니다
여부를 주소 표시 줄에 URL을 다시로드하거나 입력하여,
당신이 가서 그 새 복사본을 가져옵니다 있는지 확인하십시오.
이것은 캐시 분할의 예의 일종입니다
단지 브라우저를 권장하는 의미 바보 단어
실제로 캐싱 HTML에서 해당이 서버에서 전송 된
당신은 실수로 새로 고침을 누르면 다음 파일의 동일한 버전이 표시되지 않도록.
당신은 실제로 새 복사본을 보내도록 서버를 싶습니다.
그래서이 1,981 있다는 사실은 그 해당의 어플라이언스가 선택 무엇을 의미
과거의 임의의 날짜 있습니다.
하지만 진짜 육즙이 라인은 지금 하나입니다.
도 50 전에 당신은 아마 쿠키와 왠지 내 얼굴이 익숙하고 있습니다.
현재 지금, 특히 적은 편안한 나 사이에 그 나라,
여러분의 이해 쿠키는 지금 무엇
귀하의 이해가 더 많은 기술하기에 있는데도?
쿠키는 무엇입니까? 그래.
[학생] 사용자에 대한 정보, 자신의 사용자 이름이나 뭔가를 서면으로 한 경우 좋아해요.
>> 좋아. 그것은 이미 자신의 사용자 이름을 입력 한 여부, 사용자에 대한 정보입니다.
쿠키는 서버가 사용자에 대해 뭔가를 기억된다 방법입니다.
그리고 쿠키가 정말 것은 텍스트 파일 또는 바이트의 일부 순서입니다
그는 브라우저의 내부에 서버가 심어 져있어
안쪽으로 그 파일의하거나 해당 바이트 중에서는 식별자 어떤 종류의 것입니다.
아마도 문자 그대로 사용자 이름이지만, 더 자주 더 이상한 모양의 뭔가가
bo8dal3ct 등등 - -이 정말 큰 영숫자 문자열 여기에있는 것 같은
그 정말 당신에 대한 고유 식별자해야 해.
또는 가상 손 도장의 일종이라고 생각할 수 있습니다.
당신이 실제로 지불 한 것을 기억하기 위해 일부 클럽이나 놀이 공원에 가면
과에 갔고, 그들은 어떤 종류의 손에 빨간 스티커를 넣어
그리고 그 말은 당신이 이미 지불 한 카운터에있는 사람들을 상기시켜줍니다
당신은 와서 원하는대로 이동할 수 있습니다.
쿠키는 정신에서 그에게 약간 비슷합니다.
난 그냥 내 캐시를 삭제 한 후처럼 처음 내 말은,이 웹 사이트를 방문
웹 서버,이 경우 어플라이언스는, 내 손에 우표를 넣어
그의 이름은 PHPSESSID입니다, 세션 ID,
이 정말 긴 영숫자 문자열 값이 있습니다.
>> 그래서 내 손에 지금 emblazoned의 일종 이죠 그래서 충돌이 다음 번에 ​​다시로드하는
또는 수동으로, 브라우저에서 URL을 방문
HTTP의 정의에 의해 웹 브라우저는 손 스탬프를 제공 할 것이다
또 한번, 또 한번 다시.
그래서,하지만이 서버는 반드시, 내가 누군지 알하지 않습니다
그들은 적어도 최소한 더 구체적으로 동일한 사용자 또는 동일한 브라우저 걸 알아요.
그리고이 세션의 전역을 구현하는 방법을 궁극적 있습니다.
서버는 두 번째의 웹 사이트 또는 제 3 시간을 다시 할 때 당신이 아무 생각이 없습니다
이 손 스탬프를 제공하지 않는 한.
그리고 빨리 손 스탬프를 선물로,
웹 서버는 기본적으로 자신의 작은 데이터베이스로갑니다
그리고 수표는, 좋아, 난 그냥 등등 사용자 bo8dal3ct의 손 스탬프를 볼 수 있으며 있습니다.
나 프로그래머가 저장된 어떤 정보 보자
이 사용자에 대한 전역의 안쪽에,
그리고 내가 그 데이터가 자동 전역 세션의 내부 다시 있는지 확인하자
프로그래머는 데이터를 다시 액세스 할 수 있도록
그것은 어떤 분 시간 전 설정 한 경우에도 마찬가지입니다.
몇 시간 동안 나쁜 랩도 따라서 즉, 쿠키,
때문에 브라우저에서 불안감을하고, 정말 우리의 개인 정보 보호 및 모든 위반하는
실제로 그들 덕분없이 좋은 유틸리티가
당신은 지속적으로 사용자가 방문하는 모든 Facebook 페이지에 로그인됩니다
브라우저가 기억의 일부 방법이하지 않은 경우가 읽거나 모든 Gmail 이메일
당신은 이미 인증 한.
>> 따라서이 방식으로 쿠키가 와이어를 통해 앞뒤로 전송됩니다.
쿠키에 대한 또 다른 호기심, 특히 여기이 일반 텍스트로 완전히이라는 것입니다.
무엇이든지 무슨 일이 일어나고 어떤 암호화은 없다
그리고 실제로 나는 순간에 HTTP를 사용하고 있습니다.
지금은 2 년 전입니다 CS50에서의 즐겨 찾기 순간 중 하나,
시기에 Firesheep라는 도구가 나왔어했다.
이 보안 연구자에 의해 만들어진 소프트웨어의 무료 조각이 었어요
지역 사회를위한 모닝콜이 atrociously 구현이 얼마나 말을하고로
웹에서 특정 인증 메커니즘이었다.
따라서 시간에 대한 페이스 북은 HTTP, HTTPS 더 이상 거의 완전히이었다.
그리고 암호화의 작동 원리 아무 생각이없는 경우에도, S는 안전합니다
그래서 적어도 일부 암호화에 참여가 의미합니다.
페이스 북은 사용자 이름과 암호를 암호화하는 데 사용 않았습니다
하지만 최대한 빨리 당신이 바라 보았다 pokes하거나 메시지 또는 뉴스 피드
그 모든 암호화되지 않은되었다.
그러므로 년 또는 2 전 까진 Gmail을했습니다.
귀하가 로그인 될 때​​마다, 그래, 그들은, 보안 암호화를 사용
하지만 이후 그들은 그렇지 않아. 그 이유가있을 수 있을까요?
왜 그냥 시간은 같은 사용의 경우 암호화를 사용하지?
그게 뭐야? 난 뭔가를들은 것 같은데. [학생] 속도.
속도, 맞죠? 이 주위에 방법이 있습니다.
방금 가지, 논리적으로 생각한다면 당신은 뭔가를 암호화하는 경우
당신은 적어도 조금 더 작업을해야합니다.
pset 2가 시저 또는 Vigenere를 구현하거나 쟁이 때
단지 문자열을 인쇄하는 것은 비교적 간단합니다.
암호화 한 후 최소한 문자열을 인쇄하는 것은 조금 더 작업을해야합니다.
>> 구글과 페이스 북과 같은 슈퍼 인기있는 웹 사이트에 대한,
당신은 사람들이 방문하는 모든 단일 웹 페이지에 대한 각 사용자에 대한 더 많은 작업을 수행해야하는 경우
그 더 많은 CPU 시간을 소요됩니다.
더 많은 CPU 시간이 필요하면, 당신은 더 많은 서버를해야 할 수도 있습니다
어떤은 더 많은 돈을해야 할 수도 있습니다 의미합니다.
그리고 몇 년 동안이 정말 최선의 방법은 아니 었습니다.
사람들은에 필요한 전용 SSL 암호화를 사용합니다.
그러나, 그것은 밝혀졌다, 그리고 Firesheep와 함께 동료로 슈퍼 분명 사항이
때 지금 페이스 북에서 현재 너희들이 -
호기심에서 묻는 건데, 당신이 자백한다면 보자.
이 foregrounded가 아닌 경우에도 당신은 지금 어떤 탭에서 페이스 북을 사용하는 경우,
귀하의 URL HTTP 또는 HTTPS입니까?
[여러 학생] S. S? [웃음]
좋아요. 모든 HTTP? 단 1? 좋아요.
그래서 우리 모두는 지금 그 남자의 페이스 북 계정을 해킹 할 수 있습니다.
대부분의 경우이 적어도 일부 웹 사이트에서 기본적으로 설정되고있다.
그리고 긴 이야기 짧은 웹 트래픽이 암호화되지 않은 경우는,
뿐만 아니라 HTML은 암호화되지 않은 WiFis에서 돌아 가야 않습니다
그래서 쿠키 등은 공기를 통해 돌아 가야하나요
암호화의 형태없이.
당신은 프로그래밍에 정통한의 비트 또는 기술 정보를 검색해 약간의이면
이 작업을 수행 무료 소프트웨어를 찾으려면, 당신이해야 할 모든 스타 벅스에 앉아있다
일반적으로 무선을가 암호화되지 않은 곳이나 공항에 앉아
또는 PHPSESSID : 불과 설정 쿠키 같은 키워드를 감상
당신이 기술에 정통한이 있는지 와이파이를 볼 수 있기 때문에
이 패턴에 대한 공기를 통해 그 흐름 비트의 모든,
그때 당신은 남자의 PHPSESSID가 bo8dal 등등 할 일이 그런 말을 할 수 있습니다.
그리고 다시 당신은 충분히 기술적 인 이해가있어 또는 오른쪽 도구가있는 경우
그런 다음 재구성 자신의 브라우저가 손 스탬프를 제공하는 시작하는 수
Facebook.com 하시고, 페이스 북은 당신이 그 사람있는 것으로 가정합니다 것입니다
모두가 아는 당신이 누구 아니지만이 고유 식별자를 갖고 있습니다. 때문에
그 고유 한 식별자를 도용하고, 자신과 같은 웹 서버에 제시한다면
그들은 당신에게 그 사람의 뉴스 피드를 표시 할거야
또는 그 사람의 메시지 나 pokes.
>> 그리고 아마 페이스 북에 HTTPS를 활성화하는 방법을 지금 Google 것입니다.
하지만 그렇게 간단합니다.
그리고 페이스 북과 구글과 같은, 이것 정말 잘 찍었을
하지만 HTTP를 사용하지 않는 사용자가 방문하는 모든 웹 사이트에 대한 모든 더 많은 눈을 유지
그들에 대한 중요한 정보가 어떤 종류의를 가지고
이 금융 또는 개인이거나, 좋아하는지.
그들은이를 사용하지 않는 경우일지도 같은 쿠키를 아주 쉽게 도난 될 수 있습니다
그리고 위조, 그 바로 Firesheep했던 일이야.
당신은 프로그래머가 될 필요는 없었어요.
인터넷 연결이,이 무료 도구를 다운로드 한 자네가 할 일은했다
당신은 로그인 후 당신에게 페이스 북 이름을 보여 것이며 그런 일이 겠어요 것은
주변이 특정 예제에서 샌더스의의 모두,
자신의 이름을 클릭하여 소프트웨어 프로세스를 자동화하고해야 할 모든 한
의 그 쿠키를 스니핑 자신의 페이스 북에 발표,
그리고, 좋아, 당신은 로그인하고
그래서이 그 중 하나 공식적으로 "이 작업을 수행하지 않습니다."
자신의 홈 네트워크가 있고 열심히 했어하려는 경우, 모든 수단으로,
하지만이 대학 환경에서 선을 넘어 않습니다 알고 있습니다.
>> 하지만, 여기에 목표는이 작업을 수행하는 방식에는 영향을주지 않습니다 강조하고 정말
하지만 사물의 이러한 종류의 방어하는 방법.
그 자체가 문제가있는 경우에도 여기 사소한 솔루션,
정말 지속적으로 HTTPS를 사용하지 않는 사이트의 사용을 줄일 수있는 것입니다.
그래서 페이스 북과 구글과 같은 사이트가 점점 확인란을이
어디서 이런 걸에 선택할 수 있습니다
그리고 은행 유사한 이유로 년간이 있었다.
그래서 두려움 인자 우리가 할 수있는 경우의 조금. 하지만 그게 요약에 있습니다.
그건 서버가 당신이 누구 기억하는 방법입니다.
그리고 곧 당신이 누군지 기억하는, 그들은 당신에 대해서 아무것도 기억
프로그래머가 _SESSION $라는이 특별한 전역의 내부 저장된.
그리고 pset 7 우리는 단지 정수를 기억 trivially을 사용하고
로그인 한 사용자의 즉 고유 ID,
우리가 알고있는 사람들은 가본 적.
그런 다음 세션이나 쿠키 나처럼 질문?
Firesheep는 더 이상뿐만 아니라 작동하지 않습니다
당신은 특별한 promiscuous 모드로 컴퓨터를 넣어해야
그래서 당신은 실제로 자신 이외의 트래픽을 수신하고 있습니다.
현재 Firesheep를 다운로드하는 경우 그래서,별로 쉽게 생각해
그것은 한 번 입증하려고했는데.
괜찮아요. 그리고 샌더스에서 작업을 수행하지 않습니다. 집에서 해.
데이터베이스.
우리는 아주 신중하게 pset 7에서 한 일 중 하나
우리는 일부 사용자 ID가 사용자에게 샘플 데이터베이스에 테이블을했습니다
거기에 일부 사용자 이름, 일부 암호화 암호.
당신이 보게 될 당신이 이미하지 않은 경우, 여러분은 테이블을 좀 변경해야 할거야.
당신은 그 테이블에서 사용자의 각 일부 캐시를 추가해야 할거야
당신은 또 다른 역사 테이블, 포트폴리오 테이블을 추가 할거야
아니면 다른 전화하십시오.
그러나이 작업을 수행하는 방법에 대해 생각의 관점에서,의이 도구를 열겠습니다
있는 우리 금요일에 사용하지만, 익숙하지 않은 경우 어플라이언스는 도구가 마련되어 있습니다
, 우연히 PHP로 작성된 것입니다 phpMyAdmin이라는
그러나 인생의 목적, 나는 진홍과 jharvard로 여기에서 로그인 후,
내 데이터베이스를 조회하고 변경의 사용자 친화적 인 방법을 제공하는 것입니다.
>> 나는 어플라이언스에서 실행하고 있다는 데이터베이스는 MySQL을라고합니다.
, 매우 인기가 있으며, 사용이 멋지고 쉽게 무료로 오픈 소스 데이터베이스의
앞이 이렇게 끝나는 특히.
이 도구는 내가 어떻게 할 수 있습니다 뭐, 예를 들어, 테이블 주위 물건입니다.
내가 가서이를 보자.
금요일에 우리는 슈퍼 간단 학생들라는 테이블을 만들었습니다.
이드, 이름, 이메일 - -은 3 열을 가지고하고 수동으로 행 몇를 삽입
이 특정 예제에서 다윗과 마이크처럼.
의이 좀 더 걸릴하자, 우리는 더 기억하고 싶은 있다고 가정합시다
보다 사용자의 단지 이름과 이메일.
제가 상단에 여기 구조를 클릭 봅시다.
또, pset, 여기서 필요한 단계를 안내합니다
이 중 일부는 조금 빠른 경우 때문에 걱정하지 마십시오.
그럼 여기를 클릭거야.
I 이메일 후 열 몇 수를 추가 할 거예요
난 집에서 이런 일을 추가 할 때문입니다.
나는 학생의 집를 기록 잊어 버렸습니다.
, 내가 이동을 클릭하자, 이제 우리는 불행하게도 왼쪽에서 오른쪽으로 약간 폭이 양식을 가지고
하지만,이 분야 하우스의 이름을 부르 겠소
다음 유형의 지금 선택해야합니다.
그래서합시다은 MySQL의 다양한 유형에 대한 간단한 대화를
때문에 PHP는 약하게 입력하고 종류의 빠르고 유형을 느슨하게 연주 반면,
데이터베이스에 특히 사실은 당신의 이점에 입력을 사용하는 매우 중요
일 MySQL을 사용하고, 다른 데이터베이스 엔진 중 하나가 당신을 위해 할 수 있기 때문에
당신이 데이터베이스에 가짜 데이터를 입력하지 않도록합니다.
이 사용할 수를 확인하는 무료 오류의 일종입니다.
>> 집에 우리는 분명히 MySQL에서 32 비트 값이 정수가 될 싶지 않아.
우리는 숯불 가변 길이를 의미 varchar에 대해 금요일 간단히 이야기 했어요.
이 무엇입니까? 이것은 당신이 어떤 종류의 문자열하려는 지정할 수 있습니다.
당신은 정말, 얼마나 오래 사전에 알고하지 않습니다
그래서 우리는 임의로, 집 이름은 255 자 수라고합니다
하지만 32, 64로 갈 수 - 어떤 번호를 정말로.
그러나 문자라는 필드 위에 varchar을 사용하는 장점은 무엇입니까?
여기 아래로 스크롤 그냥 직관적 경우, 문자가와 varchar가납니다.
Varchar는 문자 변수 길이, 문자는 문자 고정 길이입니다.
따라서 해당 정의에 따라, 어떻게 이들 각각의 장점이나 단점이있어?
즉, 누가 차이에 대한 관심, 또는 왜 관심을 가져야?
>> 그래. [학생] Varchar 더 유연성을 가지고 있지만 더 많은 메모리를 차지합니다.
좋아. Varchar 더 차지 - 봅시다. 내가 그 권리를 들었는지 모르겠어.
당신은 한 번 더 그런 말을 할 수 있습니까?
[학생] 내가 varchar 아마도 더 많은 유연성을 가지고 있지만 더 많은 메모리를 차지했다.
흥미 롭군. 좋아요. Varchar 아마도 더 많은 유연성을 제공하지만, 더 많은 메모리를 차지합니다.
후자는 반드시 사실이 아니다.
그것은 문맥에 따라 달라집니다,하지만 그에게로 돌아가요.
>> [안 들리게 학생 응답] 그렇지.
사실은 숯불이 일반적으로 더 많은 메모리를 사용하는 경우입니다
문자는, C에서 같은 문자열처럼이기 때문에, 그것은 문자의 배열입니다.
당신은 길이 255 문자 필드를 말한다면
데이터베이스는 그대로 당신에게 255 자를 제공 할 수 있습니다.
그리고 집은 메이와 6 자 총되는 것을 포기 끝나는 경우,
당신은 200 자 이상 낭비하고 있습니다.
>> 필요한만큼 효과적으로 varchar는 다양한 문자로 사용하도록
최대 최대 금액을합니다.
하지만 당신이 지불하는 가격은 잠재적으로, 실제로 성능입니다.
- 귀하의 문자열의 모든 8 자 될 것이다 것을 사전에 알고있는 경우
예를 들어, 길이는 8 암호를 요구하는 가정 -
하지만하지 종종 상황에 숯불 필드를 사용하는 거꾸로
암호처럼 뭔가를 고정 길이를 지정하는 것입니다
왜냐하면 지금 데이터베이스는 더 똑똑 할 수 있습니다.
그렇게 모든 문자 필드를 알고 있다면, 열에서 모든 문자열은 같은 길이입니다
당신은 랜덤 액세스의 기능을 다시.
귀하의 데이터베이스 테이블의 다양한 숯불 분야 중 주변에 이동할 수 있습니다
때문에 행과 열 같은 데이터베이스 생각합니다.
문자열 모두가 같은 길이입니다면은,
당신은 첫 번째 바이트 0 번 것을 알고, 그 다음 하나는 바이트 8시에 있습니다
그리고 16 후 24, 등등.
모든 문자열이 동일한 길이의 경우 그래서, 훨씬 더 효율적으로 주변에 이동할 수 있습니다.
그래서 그런 성능의 관점에서 이익이 될 수
하지만 일반적으로 당신은 사전에 알 사치를 누릴 수 없다는
그래서 varchar을 선택하는 방법입니다.
다음은 심지어 페이스 북은 결국 만났다는 게 또 다른 세부 사항입니다.
, Ints 좋은이며, 우리는 말하자면 기본적으로 우리가 숫자를 원하는 시간을를 사용
하지만 만 32 비트입니다.
>> 그리고 페이스 북은 매우 지금 4,000,000,000 사용자가 없습니다하더라도,
거기에 어떤 사람들은 여러 계정으로 확실히이
또는 계정은 오픈 한 후 폐쇄 된 그
그래서 페이스 북 자체는 제가 몇 년 전에 INT에서 전환에 있다는 걸 믿지
까지, 대신 64 비트 is aptly라는 등 bigint.
그래서이 너무 디자인 결정이다.
귀하의 최종 프로젝트가 시작집니다 경우, 놀랍 운 것
4000000000 1 사용자는 어림 잡아서있다
ints를 사용하면 약간의 근시 될 수있는 경우 인치
그러나 현실에서 사용자 테이블은 아마 ints로 괜찮습니다.
그러나 pset 7과 같은 뭔가를, 기록 테이블과 같은,
당신은 etrade.com으로 발전하는 경우 수천, 수백만의 사용자가있을 수 있습니다.
그럼 반면에 당신은 더 이상 4,000,000,000 사용자가 없을 수도
당신이 가진 않는 사용자는 시간이 지남에 이상 4,000,000,000 거래를 할 수 -
구입 및 판매와 역사 것들.
당신이 예상하면 그럼 - 또,이이 많은 데이터가있을 경우이하는 좋은 문제가 있습니다 -
당신이 정수의 크기를 초과하는 데이터를 예상하면은,
bigint 같은 뭔가가는 건 자주 충분 디자이너에 의해 채택하지 방향입니다
때문에 문제가 안 사람들 모습,
하지만 그것보다 더 큰 무언가를 선택이 용이합니다.
십진수 우리는 고정 정밀도를 지정 pset 7에서 사용중인
그래서 당신은 수레와 복식과 진짜야과 같은 관련된 문제를 방지 할 수 있습니다.
>> 그리고 다른 분야가 있어요. 우리는 어느 정도 그들을 손을 흔들 수 있습니다.
그러나 날짜, 시간은 모든 MySQL에서 소정의 형식을 가지고
그리고 날짜와하지 varchars로 저장 날짜의 장점
데이터베이스가 실제로 다른 형식으로 다시 포맷 할 수 있음을 의미합니다
미국 형식 또는 유럽 형식 또는 같은이 있는지 여부 - 그러나 당신은 그럴 필요 -
훨씬 더 효율적으로 그냥 어떤 일반 varchar라면보다.
그리고 다른 이진, varbinary, 모양이 있어요.
이러한 이진 대형 개체입니다, 당신은 또한 이진 데이터를 저장할 수 있습니다
뿐만 아니라 데이터베이스의 기하학적 데이터로.
그러나 우리는 일반적으로 ints과 varchars과 같은 신경됩니다.
의 집과이 예를 끝까지 들어 보자 구요.
제가 임의로 말할거야 하우스는 255 자까지만 허용됩니다.
그런 다음 기본값은 우리가 할 수 있어요.
우리는 기본적으로 예를 들어, 메이 하우스에 모두 넣어 수 있습니다.
우리가 지정할 수 방법은 그 데이터베이스
누군가가 항상 값을 가지고 있는지 확인해야합니다. 하지만 그런 일이있을 떠날 겁니다.
사실, 집에서 학교를 살고 아니라 사람들을위한,
어쩌면 내가 실제로 집에 대한 기본 값이 NULL입니다 지정하려면
그리고이 확인란을 선택하고 사용자의 집이 NULL 인 경우 괜찮아요 데이터베이스를 알려줄 필요가 있습니다.
>> 다시 말하지만, 여러분이 위치에 넣을 수 있습니다 다른 방어 메커니즘입니다
그래서 당신은 심지어 반드시 PHP 코드에서 넣어 필요가 없습니다.
데이터베이스 일이 있거나 NULL되지 않도록합니다.
그리고 마지막으로, 속성.
이 중 어느 것도 정말 관련이 없습니다.
부호, 이진 - 그 중 어느 것도 varchar 관련이 없습니다.
색인입니다.
누구나 알고 있거나 인덱스가 무엇인지에 같은 추측을 기억하거나이 있습니까
집 같은 뭔가?
이건 너무 실제로 중요하고 상대적으로 쉽게 디자인 결정이다.
아직 보지 못하는 사람들을 위해, 금요일에 우리는 기본 키에 대해 간단히 이야기.
데이터베이스 테이블에서 기본 키 필드 또는 컬럼입니다
그 고유 테이블에서 행을 식별합니다.
그래서 우리는 ID가 현재 테이블에, 우리는 이름과 이메일을 갖추고 있습니다.
그 중, 프라이 머리 키 (primary key)가 될 수있는 가장 좋은 후보입니다
그의 역할은 고유 행을 식별하는 것입니다?
아마도 ID.
확실하게, 우리는 무엇하지만 사용할 수 있습니다?
이론적으로는 고유이기 때문에 아마 당신은 이메일을 사용할 수
사람들이 이메일 계정을 공유하지 않는.
하지만 현실은 당신이 1234와 같은 숫자 ID를 사용하는 경우입니다
이메일 주소가 이렇게 많은 바이트 또는 여러 바이트 될 수 반면 즉, 만 32 비트입니다.
따라서 고유 식별자에 대한 효율성의 관점에서,
그냥 정수를 사용하는 것이 좋습니다 경향이
당신은 틀림없이 사용할 수있는 몇 가지 문자열 후보가 경우에도 마찬가지입니다.
>> 집 같은 경우,이 프라이 머리 키 (primary key)이 아니어야합니다
그리고 단 1 명이 메이에 살고 Currier과 같은 1 사람. 수 있기 때문에
마찬가지로,이 독특한이 아니어야합니다.
기본 및 고유 사이의 차이는, 현재 테이블의 경우에 해당합니다
ID는 기본이 될 것입니다하지만 이메일은 우리가 언급 한 이유에 대한 일차적 없습니다 -
성능 -하지만 여전히 고유해야합니다.
그래서 당신은 여전히​​ 주장을하지 않고 고유성을 시행 할 수 있습니다
그것은 슈퍼 중요한 주요 분야라고.
그러나이 사람은 매우 도움이 될 것입니다 : 색인입니다.
당신은 pset 7, 또는 일반적으로 최종 프로젝트를 사전에 알고있는 경우
이 필드 하우스는 많은에서 검색 일이 될 거라는데
선택 키워드 또는 다른 뭔가를 사용하여
다음은 preemptively의 마법을 작업 할 데이터베이스를 알 수
하고 필요한 메모리에있는 고급 데이터 구조를 생성되었는지 확인
집에 따라 검색 결과를 신속하게합니다.
아마 해시 테이블을 사용합니다, 아마 연결된 목록을 사용합니다.
현실에서는이 나무를 사용하는 경향이 종종 구조는 B-트리라고 -
아닌 이진 트리하지만 B-트리 - 매우 넓은 나무
당신은 CS124, 데이터 구조 클래스와 같은 클래스에서 볼 수 있다는.
그러나 짧은에, 당신은 스마트 데이터베이스 소프트웨어를 사용할 때 걱정하지 않아도됩니다.
"나는 더 효율적으로 검색 할 수 있도록 색인이 필드를."당신은 단지 그것을 알 수
>> 이 오프를 떠나 당신은 메이에 거주하는 데이터베이스에있는 모든 사람들을 검색하려고하면
그것은 선형 검색로 바뀔 것입니다.
그리고 당신은 어떤 집에서 모든 생활을 6000 undergrads 있고, 경우
당신은 Matherites을 찾기 위해 전체 테이블을 검색 할거야
당신은 인덱스라고한다면, 아마도 그것은 로그 검색에 가까운 무언가 될 것입니다 반면,
그런 종류의 학생들을 찾으십시오.
이 켜졌 단 무료 기능입니다
그것은 공간의 일부 금액의 가격에 올 않는 경우에도.
마지막으로, 자동 증가,이 AI 필드
이는 그냥 정수 있다면 의미하며 당신은 스스로를 증가시키는 신경 원하지 않는
새 사용자가 때마다, 그 확인
그리고 삽입됩니다 각 사용자는 자동으로 새 ID를받을 것입니다.
가자 저장을 클릭하고 지금의이 디자인 오류를 찾으실 수 있습니다.
나는보기, 마이크, 내 집이 모두 NULL되고 있다는 사실을 알 수로 이동합니다.
이 수동으로 편집 phpMyAdmin을 사용할 수 있습니다.
나는 Enter 키를 누르 후 메이 여기와 유형에 가서 할 수 있습니다
지금 테이블이 다른납니다.
하지만뿐만 아니라 다른 일을 할 수 확인합니다.
다윗의 ID는 1이고, phpMyAdmin 다시 단지 관리 도구입니다 때문에,
이 사용자가 어느에 갈 것이 아닙니다.
내가 대신 꼭대기의 SQL 탭을 클릭한다면 -
다시, pset 7이 쿼리의 더 많은을 소개합니다 -
내가 수동으로 SQL 구조적 쿼리 언어 명령을 실행할 수
UPDATE 사용자는 집 = 'Pfoho'를 WHERE ID = 1로 설정합니다.
이 SQL 쿼리는 잘 정도로, 왼쪽에서 오른쪽으로 꽤 읽을 수 있습니다.
사용자 테이블을 업데이트 Pfoho에 집라는 필드를 설정합니다
사용자의 ID는 1입니다.
아니면 내가 더 할 수있는 이메일 = 'malan@harvard.edu'.
너무 오랫동안 고유 저를 식별하는 등, 그뿐만 아니라 작동합니다.
그러나 ID는 높은 성능 경향이 있으니, 그렇게 해주세요.
어서 클릭 봅시다. 좋아요, lecture.users가 존재하지 않습니다. 내 오류가 무엇입니까?
실제로 여기라는 테이블은 무엇입니까?
그렇게 우리가 왼쪽 상단 여기에 무슨 짓을했는지 그냥 있기 때문에 학생들라고.
그것은 학생들하지 않은 사용자 이름이야. 이제 이동을 클릭합니다.
1 개 행이 영향을. 검색어 0.01 초 걸렸습니다.
나는 Pfoho에 지금, Malan 삶을 찾아보기를 클릭합니다.
그래서 SQL의 또 다른 맛이지만, pset는 약간 더 과정을 안내합니다.
>> 이미 여기 한 바보 같은 결정이 있어요.
이 데이터베이스 디자인이 비효율적입니다 논쟁하는 겁니다
때문에 나는 학생 테이블에 추가 더 많은 사람들,
내 말은, 난 추가 할 TFS의 자세한 내용을 추가 할 우리의 더
우리는이 표에 중복을 보려면 시작 건가요?
>> 그래. [학생]는 학생들 걸보고, 우리는 동일한을 사용하는 [안 들리게]
같은 - 그래, 맞아요.
4백명이 메이에 거주한다면, 있지만요
결국이 표는 " '메이', '메이 말을 400 행을 가지고 것입니다
'메이', '메이', '메이. "
우리는이 바이트를 모두 낭비 야, 테이크 아웃 몇이있다.
사람이 많은 돈을 지불 곳 경우 1, 미친 코너 케이스가
그리고 이름을 변경 메이, 우리는 지금 우리의 전체 데이터베이스 테이블을 변경해야합니다.
Pfoho 한 번 15 년 전 북한 하우스 불렀습니다하지만 그건, 자주 일어나지 않고,
그래서 발생합니다. 그러나 그 모든 강력한 없습니다.
대량의 데이터를 업데이트 할 필요의 같은 코너 케이스보다 뛰어난
데이터베이스에 대해 왜 다시 다시 메이을 저장하고 다시 또 다시? 아르 수 있습니다
문자, 6 문자의 많은 기록이다.
할 수 없습니다 우리는 특히 Pforzheimer를 들어, 그것보다 더합니까?
확실히 우리는 많은 자보다 더 할 수 있습니다.
왜 그냥 각 집이있는 고유 식별자를 연결하지
각 사용자에 대해 해당 가게 요? 그럼 이렇게 해보자.
오히려 단지 학생들의 표를 사용하여보다, 내가 왼쪽 상단 여기까지 제 강연 데이터베이스까지 가자.
여기 공지는 테이블을 만듭니다 말합니다.
저 집이라는 새 테이블을 만들 수 있습니다.
열 수는 2가 될 것입니다. 입력합니다.
지금은이 분야가 있습니다.
,이 이름을 부르 겠소 있으며, 길이는 255 varchar 될거야
>> 하지만 꽤 임의입니다. 내가이 여기 규칙에 의한하자.
그래서 여기 ID를 넣어. 의 모든 집에 고유 식별자를 줘 보자.
의 모든 집 이름을 드릴께요.
식별자는 양수를 사용하는 단지 대회에 서명 될 것이라고가 지정할 수 있습니다.
가 진행 지금이 자동 증가 필드를 줘 보자.
그리고 우리가 뭔가를해야합니까?
가 진행하고 저장을 클릭 봅시다.
지금은 두 번째 테이블을 갖추고 있습니다.
옆으로는 약간 암호화 된 SQL 명령입니다 공지 사항
당신은 phpMyAdmin과 같은 관리 도구를 사용하지 않을 경우 수동으로 입력했을 것을.
우리가 사용하는 또 다른 이유는 그럼.
당신이 근처에 클릭 수 있으므로 pedagogically의 멋지고 유용한 일종 이죠
일이 그냥 복사 및 phpMyAdmin 짓을 붙여 넣기하여 어떻게 작동하는지 알아 봅시다.
그러나 생성 테이블 명령은 실행 지이며, 여기 내 테이블입니다.
내가 지금 가서 삽입 탭을 클릭하여 원시 SQL보다는 지나치게 단순화를 사용하여 보자.
나, 집에 삽입하자
그리고이 집의 이름은 '메이'의 값을 갖게 돼 말할거야.
그게 전부 야. 이 문법은 조금 더 이상한 것입니다.
이것은 우리가 삽입 할 필드의 이름입니다.
이러한 우리가 그 분야에 삽입 할 값입니다. 내가 이동을 클릭 봅시다.
삽입 한 행이 0.02 초 걸렸습니다. 내가 지금 찾아보기를 눌러 보자.
>> 제가 찾아보기를 클릭하면 공지 사항, 누구의 ID 자동화하여 숫자 1 매더이있어.
내가 또 하나를 보자. 제가 SQL 탭으로 가자.
집에 삽입. 집의 이름은 등등 Pfoho의 값을 가지고 가서 있습니다.
이동합니다. 그리고 또 한번, 또 한번 다시이 일을 할 수 있습니다.
당신은 phpMyAdmin을 사용하여 지루해지면 또는, 당신은 단지 삽입 탭을 사용할 수 있습니다
와 원시 SQL을 입력 할 필요가 없습니다.
넌 그냥 입력하여 더 빨리를 두들겨도 돼 예를 들어, Currier은 입력
우리가 찾아보기를 누르면 지금 3의 ID와 Currier 있어요.
그래서 우리가 자동으로 증가하여 무슨 뜻인지입니다.
하지만 지금 우리는 학생들 뭔가를 고쳐해야합니다.
학생들이 집 필드의 데이터 유형은 이제 어떻게해야합니까?
그것은 바로 정수이어야합니다?
여기에 목표 아웃 반영하는 것입니다, 그렇지 않으면 테이블이 정상화로 알려진
그래야 우리가 내 테이블 중 하나에 이중화 정보를 저장하지 않습니다.
그리고 다시, 우리는 여기에 있던 경로는, 메이, 메이 말 것입니다
메이 매우 중복 메이, Pfoho, Pfoho, Pfoho, Pfoho,
문자의 wastefulness의 관점 인치
그럼 내가 진행을 클릭하여이 구조를 변경하게,
이 날 가서 집 필드의 선택을 해제 해, 변경을 클릭합니다
지금은 정수로를 변경거야.
255 관련 더 이상 사용할 수 없습니다.
내가 진행하고 여전히 NULL이라면 그게 좋아한다고 가정 해 봅시다. 저장합니다.
지금 테이블 학생들은 성공적으로 변경되었습니다
다시주의 집은 정수입니다.
이 ints 할 때 옆으로, 괄호 안의 숫자를 무시합니다.
>> 이 레거시 이유입니다.
위로 하루에 당신이 GUI를하지 않은 경우, 당신은 대신 명령 줄 환경을 가지고
당신이 표시해야 10과 11을 각각 지정 얼마나 많은 자
터미널 창에서 실제로 필드를 표시합니다.
그것은 실제 필드의 비트 길이와는 아무 상관이없는, 그래서 우리가 지금 그런 무시됩니다.
지금이 테이블에 가야 해요.
그리고 데이빗 메이에 거주하는 경우, 집은, 0이 아니어야합니다
이는 NULL에 가장 가까운 기본 정수 값입니다.
그는 집 하나에 살고 있습니다.
하자 임의로 그런 말을 Pfoho의 마이크 생활 때문에 집 번호 2.
지금 내 표는 조금 더 이상한 보입니다.
하지만 효율성을 고려하십시오.
지금, 집 파악 만 32 비트를 사용
이는 내 집에 메이와 Pfoho의 1 표준 정의가 의미
그리고 그 집 테이블에 있습니다.
지금이 테이블에 다시 가입하고 싶다면 이런 식으로 생각합니다.
여기 내 학생 테이블을 가지고 있고, 오른쪽에 숫자 1과 2가 있습니다.
1 메이이며, 2 Pfoho입니다.
우리는 집이라고이 다른 테이블에있는 동일한 번호를 가지고
그 3 주택에 대한 1, 2, 3.
우리가 지금하고 싶은 것은 코드의 능력, PHP와 SQL을 가지고 있습니다
의 정렬하려면이 테이블을 재가입 곳이이 학생들 이들의 주택 인 경우는,
우리는 어떻게 든 1 그게 그렇게 한 라인 업을 결합 할
이 2까지 라인, 그래서 우리는 어디에서 데이비드을 알아낼 수
, 어디 마이크, 어디 다른 사람들이 살고있다.
이 작업을 수행하려면 우리는 다음과 같은 SQL 쿼리를 실행할 수 있습니다.
학생들이 ON 주택을 가입로부터 * 선택 -
그리고 지금 우리는에 가입 할 것을 필드를 원하는거야?
students.house = houses.id 했어요.
>> 약간의 암호화하지만,이 부분의 의미는 말 그대로 새로운 임시 테​​이블을 만들
그 학생 집에 참여의 결과입니다.
그리고 어떻게 여기가 내 손가락 끝을 결합 하시겠습니까?
ID 필드 학생들의 집과 동일 주택 필드 '를 설정합니다.
그리고 지금 이동을 클릭하면, 난에 희망 정확히 다시.
데이빗 메이에, 마이크 Pfoho에, 나는 또한 고유 식별자를 참조하십시오.
그러나 중요한 점은 난 완전히 테이블이 지금입니다.
그리고 pset 7 여기에 테이크 아웃이나 정말 마지막 프로젝트에 대한 :
당신은, 이중화 정보의 조각을 저장하는되는 경우
이 아니라 집이든, 어쩌면 도시, 주 및 ZIP입니다
ZIP은 보통 항상은 아니지만 고유 한 식별자로 사용할 수있는,
phpMyAdmin 같은 뭔가 정신적하고 운동을 통해가는거야
그 공통 자료를 고려해 인해 귀하의 웹 사이트가 더 잘하더라도 특히
더 인기있는,이, 당신이 모든 빠르게 있는지 확인하는 방법입니다
가능한 한 독자성에 대한 많은 힌트로 데이터베이스를 제공하여.
그건 많이했습니다.
질문? 괜찮아요. 의이 5 분 휴식을 취한 모여서 보자.
괜찮아요.
다음은, 내가 CS161을 찍었을 때 몇 년 전에 사용 된 예입니다
이는 대학에서 운영 체제 클래스입니다
놀라운 존재로 알려져 있지만, 작품의 미친 양하는,
그리고 운영 체제에서 발생하는 낮은 수준의 문제의 일부에 정말 초점을 맞추고
또한 심지어 데이터베이스의 세계 요.
>> 다음과 같이 그 해 제 교수, 마고 탄산수로 말을 들었다 이야기했다.
당신은 당신과 당신의 룸메이트에 대한 약간의 기숙사 냉장고가 있다고 가정합시다
그리고 둘 다 정말 우유를 좋아해요.
따라서 1 등급 날부터 집에 돌아 오면, 니 룸메이트가 아직 도착하지 않습니다
당신은 냉장고를 열고는 걸 "이런 이런, 우리가 우유를 벗어난다."
그래서 냉장고를 닫습니다, 당신은 CVS에 길 건너편에 걸어
그리고 CVS에서 우유를 구입하기 위해 점점 더 긴 선으로와.
한편, 니 룸메이트는 자신의 클래스에서 집에 와서는
방 안에 들어 와서 정말 우유하고자 냉장고가 열립니다
냉장고를 열고, "이런, 아니 우유."
그래서 그는 또는 그녀는 냉장고를 닫고 문을 걸어, 그리고 ABP에갑니다
당신이 서로 우연히 않을거야 CVS 이상 또는 어딘가 다른
우유를 이동합니다.
물론 몇 분 후, 당신 둘은 집으로 돌려받을
그리고 지금 당신은 당신이 실제로 원하는 두 배나 많은 우유가 있습니다.
당신은 우유를 좋아하기 때문에 우유되고, 지금은 나쁜 갈거야
하지만 우유를 좋아하지 않아, 그래서 지금 너무 많은 우유를 가지고 있으므로 신 겁니다.
이 끔찍하게 상황입니다.
당신은 첫 번째 룸메이트 홈한다면 어떻게이 곤란한를 해결 할 수 있었을까요? 예.
[학생] 당신은 메모를 남겨해야합니다. [웃음]
좋아. 당신은 메모를 남기 있어야합니다.
당신은 "우유에 대한 사라지다"라는 말처럼 후 그 메모 또는을 했어야
다음 룸메이트는 개념적으로 실제로하는 일을 배제되었을 것이다.
또는 1 단계 더 갈 수 있습니다.
당신은 말 그대로 자​​물쇠의 일종으로 냉장고를 잠글 수 있습니다
지금 당신의 룸메이트는 그대로 냉장고에서 배제됩니다.
우리는 프로그래밍으로 일반화 경우,
당신은 거의 변수의 어떤 또는 구조체로 냉장고 생각할 수
자세한 내용은 컨테이너의 일종.
이 문제는 근본적으로 여기서 당신을 모두 검사 할 수 있다는 것입니다
또는,이 데이터 구조의 상태를 읽어
하지만 다른 시간에서 조회하고 아직 둘 다 결정을 내린
시간에 그 다른 순간의 세계의 상태에 따라.
당신이 냉장고 문을 잠 한, 당신은 적어도 당신의 룸메이트을 피할 수 있었을 것
세계의 상태를 검사 할 수 있었다는 것을에서,
그래서 그는 또는 그녀가 같은 결정을 한 수 없습니다.
상황이 정리되고 나면 데이터베이스 그래서, 지속적으로이 문제가 있습니다.
>> 우리가 시나리오를 만들 수 있는지 봅시다.
당신이 나쁜 사람의 일종 있다고 가정하고 미국 은행으로 이동
옆으로 몇 현금 지급기 측이 광장에있는 다른 장소 또는 하나
그리고 어떻게 든 당신은 ATM 카드를 복제하는 방법을 알아 냈어 - 모든 어려운 없습니다.
이건 그냥 자기 스트립입니다.
그리고 당신은 무슨 일을 시도 할 것은이 게임을 연주하는
상기 당신은 다른 기계로, 1 기계로 다른 카드를 한 카드를 넣어
당신은 본질적으로, 동시에 돈을 인출하려고 할
상상하기 때문에 그 이야기는 다음과 같이갑니다.
왼쪽에있는 기계, 카드 및 PIN 필요
그리고 당신은 "나에게 100 달러를주세요."라고
ATM 먼저 데이터베이스 또는 동등한에서 선택을하도록 프로그램되어있다 -
가 사용하고있는 건 데이터베이스 - 볼이 사용자는 자신의 계정에 최소 100 달러를 가지고 있습니까?
그렇다면 100 달러를 뱉어하고 잔고에서 $ 100 뺍니다.
물론 여기에 여러 시스템이있을 경우 또는 검사의 여러 가지 방법
그 세계의 상태, 은행 금고, 당신은 돈이 얼마나 볼 수
왼쪽의 기회 기계를하여 해당 단지 가정하고 오른쪽
모두 시간에 대략 같은 순간에 그 질문을 물어보십시오.
>> 그리고 이건 정말 문제가 발생할 수 있습니다. ATM은 요즘 컴퓨터입니다.
왼쪽에있는 기계가 말했다면, "그래, 당신은 적어도 $ 100이"
한편 오른쪽에있는 기계 "예, 당신이 적어도 $ 100이"라고
그리고 둘 다 자신의 프로그램을 마치려면 계속해서 실제로 100 달러를 뱉어
와 "이전에 200 달러를했습니다."라고
"내가 지금 계정에 남아 백달러 될 수있는 변수를 업데이트하자."
둘 다 귀하의 계정 잔액을 확인하고 발견 한 경우 그러나 200 달러라고
100, - 그리고 둘 다 다음 수학 및 말 200 일
기계는 잠재적으로, 각 기계의 두 백달러 지폐를 뱉어 한
하지만 단지 만원으로 귀하의 합 계정 잔액을 업데이트했습니다.
즉, 당신은 200 달러를 냈어요,하지만 그들은 세계의 상태를 검사하기 때문에
동시에 한 다음,이 값에 따라 결정을 내렸다
그들은 궁극적으로 정확하게 계산을 수행하지 않을 수도 있습니다.
따라서 은행 상황에 너무 당신이 정말로 잠금 어떤 종류의를 갖고 싶어요
그럼 당신은 변수의 상태를 확인 한 즉시 그
즉, 귀하의 계정 잔액처럼, 정말 중요한거야
귀하 일을하고 완료 될 때까지 다른 사람이 그에 따라 결정을 내릴 수있게하지 말아,
이 경우 당신은 왼쪽에있는 ATM 곳입니다.
다른 사람을 잠급니다.
당신은 실제로 서로 다른 몇 가지 방법이 효과를 얻을 수 있습니다.
>> MySQL에서 가장 간단한 방법은 우리가 준 SQL의 줄입니다
정확히과 같은 문제 세트 사양 인치
제목이 무엇이든 - - ID, 상징, 그리고 공유, 주식의 수, 테이블에 삽입
다음 값 예를 들어.
당신은 아직 사양을 읽을하지 않은 경우, 여러분이 어떻게해야할까요 관련된 예입니다
대통령 Skroob이 페니 주식의 10 주식을 구입,
그의 사용자 ID는 숫자 7로 어떻게됩니까?
이 표 다음 ID, 상징, 그리고 주식의 수에 삽입 말한다
7 'DVN.V', 그리고 10.
하지만 -하지만,하지만,하지만, - 두 번째 줄은 중요한 하나입니다.
중복 KEY UPDATE 공유 ON = 주 + VALUES (주).
너무 기분이 한눈에 암호 보이는.
그러나 그런 사실이 SQL 쿼리, 그건 2 라인에 래핑하더라도하면,
한 긴 쿼리이며, 그것이 원자는 뜻
이 쿼리가 하나 전혀 모두 함께 여부 실행됩니다 이었어요.
와 MySQL의 정의에 의해, 그 사람들이이 쿼리를 구현하는 방법입니다.
다에 한 번 또는 모든을 실행할 보장 설명서에서 정의하는 것입니다.
다음과 같이이를위한 동기 부여입니다.
이 경우 당신은 주식의 10 주식을 구입하려는 경우
이 우유 같은 이야기 네요,이 ATM과 같은 이야기 이죠.
>> 당신이 한 경우의 실수는이 구문을 사용하지
대신 데이터베이스에서 선택하면이 페니 주식 얼마나 많은 주식을 볼 수
대통령 Skroob이 있습니다, 그는 10 주식을 가지고 가정 않습니다
그러다 순식간에 나중에는 UPDATE 문을 수행,
이는 진행 10 더 많은 주식을 추가라는 SQL에서 다른 문입니다
그의 현재 10 있도록 이상적으로 합계가 20입니다
문제는 현재의 데이터베이스 시스템과 때문에 오늘날의 컴퓨터에
여러 개의 프로세서, 멀티 코어가 -
즉, 컴퓨터는 그대로 한 번에 여러 가지 일을 할 수 있습니다 -
보장 할 수 없습니다 귀하의 SELECT이 경우에 UPDATE
백업 다시 일이 일어날 수 있습니다.
나쁜 시나리오는 것 그래서 당신은 당신의 SELECT 해줄
얼마나 많은이 페니 주식의 주식 Skroob 가지고 않습니다 확인하려면,
그리고 그냥 우연히 다른 데이터베이스 쿼리를 실행합니다 -
어쩌면 다른 브라우저 창에서의 Skroob 10 주식을 구입하려고
다른 창에서 모두 많은 ATM 등 -
다른 쿼리가 SELECT와 UPDATE 사이에 도착했다고 가정합니다.
이 Skroob 지금 주식 일부 번호를 잃게되는 경우가 수
다른 프로세스가 자신의 세계의 상태를 검사하기 때문에,
또는 그는이 있어야보다 더 주를 얻을 수 있습니다.
우리는 이러한 특정 스토리 라인이 될 정확히의 세부 사항에 가지 않을거야
당신이 변수 값을 확인하고 다음 결정을 내릴해야하는 경우 그러나 요점은
다른 사람이 그 두 문장 사이에 뭔가를하고있는 중이의 위험이 있다면,
으로는 멀티 코어 시스템에서 멀티 프로세서 시스템에서 발생할 수 있습니다
한 번에 여러 일을 할 수있는 능력을 컴퓨터가 나쁜 일이 발생할 수 있습니다
같은 은행 계좌는 배 많은 우유를 구입, 잘못 청구 된
주 또는이 경우 잘못된 번호입니다.
그러나이 생각 할 수있는 쉬운 방법이 있어요.
>> 제대로 테이블을 구성하는 경우는, SQL도 지원 밝혀
나는 논쟁하는 겁니다 transactions라는 것이 이해하기 실제로 더욱 쉽게
이보다하지만 1 라이너 아니라, 때문에 실제로는 더 관여 비트입니다.
START 거래라는 SQL의 문은 그대로 있습니다.
거기 SELECT UPDATE, INSERT, DELETE 및 가입이 있고 다른 사람의 무리대로하면,
START 트랜잭션과 같은 키워드가 없습니다.
그리고 당신은 다음 pset 7 맥락에서 무슨 짓을 -
당신은 pset 7이 작업을 수행 할 필요가 없습니다, 그것은 명시 적으로 필요하지로 면책있어,
하지만 최종 프로젝트가 유용 할 수 있습니다 -
당신은 START 거래 쿼리 한 다음 다른 쿼리를 호출하는 경우
그리고 또 다른 쿼리 한 다음 다른, 다른, 다른,
당신은 SQL 문이 COMMIT 연락 할 때까지 해당 쿼리는 실제로 실행되지 않습니다
어떤 시점에서, 지금은 2 문 20 문이든, 그것들은 모두 한 번에 실행됩니다
이는 다른 사람이 실수로 너무 많은 우유 나 직불 너무 많은 돈을 살 수 없다는
귀하의 쿼리의 모든 실행되므로 또는 너무 많은 주식을 살
다시 백업 백업 백업합니다.
그리고 여러분이 이런 일을하고 있어요 특히, 슈퍼 것이 중요합니다.
이 해보자 은행 계좌를 업데이트라는 임의의 예입니다
계좌 번호는 2입니다 1천달러 - 잔액에 대한 동등한 균형을 설정하여.
그리고 두 번째 문은 지금의이 1,000달러 입금하게되어 있습니다
에 다른 사람이 그의 계좌 번호를 1 은행 계좌입니다.
>> 즉, 여러분이 있는지 확인하려는의 완벽한 예입니다
이러한 조건에 모두가 전혀 발생하거나하지 않는 것이
그렇지 않으면 고객은 망하려면 거니까
그리고 당신은 돈을 가지고 다른 곳을 입금하지 않는 것
당신이 돈을 입금 할 거지? 곳이나 은행 망의 피해를 입을 것
하지만 실제로 사용자의 계정에서 빼지.
그럼 당신은 둘 다 함께 실행하고 싶습니다.
따라서 세계 거래로 들어갑니다.
그럼, 네 마음의 뒤쪽에 유지하기 위해 뭔가
단지 최종 프로젝트의 목적을 위해 많이하지,
어디 선가 최종 프로젝트를하고 싶다면,
당신은 주위 몇몇 회사를 시작하려는 경우
당신은 학교에서 일부 학생 그룹의 문제를 해결하려는 경우
실제로 수행중인 웹 사이트가, 이것들이 발생할 수 있습니다 미묘한 버그의 종류 아르
당신은 매우 통해 생각하지 않을 경우 어떤 일이 일어날 수있는 경우 이명
시간에 그대로 같은 시간에서 웹 사이트에 액세스하려고합니다,
상기의 쿼리는 달리 결합한받을 수 있습니다.
>> 일부 자바 스크립트, 그 맛보기 메시지에 대한 준비가 되셨습니까?
이 학기를위한 우리의 마지막 언어입니다. 괜찮아요.
다행히, 자바 스크립트, 2 언어, C와 PHP를 매우, 매우, 매우 유사 해 보입니다
우리는 지금까지 했어.
이 pset 7에 자바 스크립트는 아니 구요,하지만 매우 유용한 도구입니다
이 웹 기반 최종 프로젝트를 수행하거나 단지 웹 프로그래밍 더 일반적으로 할 때.
DOM라는 걸 너무 간단한 개요.
여기가 그냥 인사 만, 세계라는 슈퍼 간단한 웹 페이지입니다
제목과 본문에 모두.
들여 쓰기는 얼마 동안 제안 된 바와 같이
웹 페이지에 계층 구조가 실제로 있습니다.
나는 나무로 HTML이 같은 스 니펫 (snippet)을 그리는 수
, C의 데이터 구조 우리의 토론으로 돌아 생각은​​ 다음과 같습니다.
나는 문서 노드라는 특별한 루트 노드가
우리는 단지 순간에 자바 스크립트에서의 아날로그를 볼 수 있습니다.
이 경우 첫 번째 자녀와 그 자녀가 만 HTML 태그입니다.
DOCTYPE의 직접적인 매핑이 없습니다.
그건 특별한 일이야, 그것은이 DOM에 관한 한 우리가 그것을 무시해야하므로
이 문서 객체 모델 트리.
공지 내가이 직사각형으로 임의로 묘사 한 HTML 태그,
머리와 몸 : 2 자녀가있다.
>> 사람들은 마찬가지로 사각형으로 그려져 있습니다.
그것은 머리가 몸의 왼쪽에있는 것을 pictorially 의미입니다.
시사 머리를 트리에서 먼저한다는 것입니다.
이처럼 그리 할 때 나무에 주문, 사실은이
모양과 이것 저것는 임의인데도라고 생각 했어요.
헤드 한편, 타이틀이라는 하나의 아이를 가지고
그리고 제목은 실제로 "안녕, 세계"입니다 자신의 아이를 가지고
가 내가 의도적으로 사각형에서이 약간 다른 수 있도록 여기에 타원형으로 그렸다.
안녕하세요, 세상은 정말 텍스트 노드 반면,이 사각형은 요소입니다.
그럼 트리의 노드이지만, 노드의 다른 유형입니다
그래서 내가 임의로 다른 생각을 끌었다.
마찬가지로 몸은뿐만 안녕하세요, 세계라는 아이를 가지고
그들은 우연히 같은 텍스트인데도 이렇게 다른 노드,
하지만 같은 모양을 사용하여 그려 놨거든요. 누가 무슨 상관이야?
음, HTML에 대한 좋은거야은이 계층 성격을 가지고 있다는 것입니다.
그리고 자바 스크립트와 자유롭게 사용할 수 있습니다 특히 도서관에 대한 좋은 무엇을이야
그리고 jQuery를 같은 인기 그렇게 놀랍도록 쉽게 트리 구조를 탐색 할 수 있습니다.
우리가 포인터 및 트래버스 측량 나무와 C에서 한 일들을 어떠한 노드에 recursing
부여에 맞는 자녀에게 왼쪽 자녀, 우리가 정렬 할 수 있습니다 갑자기 시간이 걸리는
조금 실망하지 않을 경우 놀랍도록 계몽로서
하지만 거의 프로그래밍에 대해 갈 수있는 효율적인 방법입니다.
그리고 자바 스크립트와 같은 이러한 높은 수준의 언어로
우리는 훨씬 더 직관적으로이 나무를 탐색 할 수 있습니다.
>> 그리고 실제로 문법은 아주 익숙한 것입니다.
당신이 전에 자바 스크립트를 본적이 없어요 경우에는 정말 좋은 참조입니다
모질라 사람들에서 사람들은 누구 Firefox를 확인
있도록 편리한 시간에 그를 찾아 자유롭게 않습니다.
당신이 찾을 수 있습니다 - 이러한 슬라이드는 우리가 다른 일 사용한 동일합니다 -
마찬가지로, 기본이 사라졌어.
그래서 자바 스크립트에서 프로그램을 쓸 때, 더 주요 기능은 없습니다.
당신은 코드를 작성 시작합니다.
그러나 자바 스크립트와 C와 PHP 사이의 키 차이
즉 C와 PHP는 지금까지 서버 측을 실행 한 반면,
이 경우 어플라이언스에서 이상 일반적으로 서버에서,
디자인의 자바 스크립트는 일반적으로 브라우저에 의해 실행됩니다.
즉, 우리가 약이에요, 자바 스크립트 코드를 작성 할 수
어플라이언스 서버,하지만 당신이 CSS 사이, 당신의 HTML 사이를 포함에,
귀하의 GIF를하고 PNGs 및 JPEG 파일들
그래서, 당신은 자바 스크립트를 사용하는 경우, 사용자가 웹 페이지를 방문 할 때 그
그 자바 스크립트 코드는 서버에서 브라우저에 제공
그리고 실제로 그것을 실행하는 브라우저입니다.
그래서는 지적 재산권에 대한 의미있는 영향을 미칠 수 있습니다.
이 자바 스크립트 코드에 관한 때 심지어 IP를 보호 생각해 바보 같은거야
언어의 본질하여 일반적으로 브라우저 측 실행됩니다 때문입니다.
>> 당신은 당신이 미친 짓하고 추한 볼 수 있습니다 즉, 그것을 당황하게하다 수 있습니다
없이 공백으로, 사람들이 귀하의 IP를 도용하기가 어려워 할 무시 무시한 변수 이름,,
하지만 키가 브라우저 측을 실행된다는 점입니다.
비록 옆 자바 스크립트를 사용할 수 있습니다 서버 쪽 등,
가장 일반적인 사용 케이스는 지금 브라우저에 남아 있습니다.
그리고 여기 보이는거야. 다음은이 경우 - 다른 경우 - 다른 단지 PHP처럼, 그냥 C처럼 만들 수 있습니다.
때 "또는"2 가지가 함께 여기 부울 식입니다.
여기 함께 할 때입니다 "와"2 가지.
여기에 PHP와 유사한 스위치 문입니다
그런 당신은 가치의 다른 유형에 전환 할 수 있습니다.
루프는 마찬가지로 우리가 전에 본 적이있는 것과 동일하게 구성되는, 여기를 루프에 있습니다.
동안이 루프, 우리는 루프 동안 할있어.
변수, 아무리 약간의 차이가.
당신은 PHP와 C에서처럼 당신은 변수를 선언합니까
하지만 마찬가지로 자바 스크립트를 약하게 입력합니다.
당신은 정수 또는 부동이나 문자열이나 보통 그런 일을 지정하지 않습니다.
당신은 VAR 지정할 수 있습니다.
당신은 VAR을 지정할 필요가 없지만, 그렇지 않은 경우는 의미가 있습니다.
당신은 VAR 생략 보통 경우 실수로 대신 지역의 전역 변수를 만들 수 있습니다.
그래서 당신은 거의 항상 VAR 말 한 후 변수의 이름있는 날 제안 보자.
그건 취향이 아니야, 그것은 변수에 대해 단지 VAR입니다.
이것은 123 또는 "안녕, 세계"이든, 예를 들어 것입니다.
배열은 현재와 PHP에 대한 구문과 비슷합니다.
나는 VAR 번호를 말씀 드리죠 그럼 내가 변수를 선언 다시 대괄호를 사용하여
쉼표로 구분하여 거기에 이러한 특정 숫자를 가지고 배열은 누구의 유형입니다.
그리고 마지막으로,이 정말 달라 보이는 유일한 하나입니다.
PHP에서 우리가 학생 연관 배열을 구현 한 것으로 기억
Zamyla 같은 변수가 학생이라고하는 곳은 다음과 같이 보일 수 있습니다.
대괄호 여기에 배열되어 의미합니다.
>> 난 숫자 인덱스하지만 문자열을 사용하지있는 것이 사실 - ID, 집, 이름 -
,이 연관 배열을 의미합니다
와 함께 이러한 화살표는 로그인 및 직각 브래킷을 동일
키가 "이드"을 의미합니다, 값은 1이다;
키가 "집"이며, 값은 Winthrop 하우스이다;
키가 "이름"이며, 값은 Zamyla 찬 것입니다.
안으로 자신의 가치를 가지고 각이 연관 배열, 3 키가 있습니다.
우리는 pset 7 또는 너 곧 알게 될, 자바 스크립트 같은 생각에 본
하지만 이렇게 보이는거야.
따라서 VAR 학생 - 아니, 달러 기호 및 유형에 대한 언급 여전히 있지만, VAR -
자바 스크립트에서 키 값 쌍을있을 때하기 때문에 중괄호를 엽니 다 동일하고,
당신은 실제로 객체라는 것을 사용합니다.
그리고 APCS을하거나 같은 않은 분들은 Java에서 개체를 기억 할 수
또는 유사한 언어입니다.
자바 스크립트는 우선, 자바 없습니다.
그것은 인기 다른 뭔가를 떨어 뜨려야 신중한 디자인 결정 년 전이었다
그 이름, 그 자체를 자바 할 근본적인 관계가없는 경우에도.
자바 스크립트 객체를 가지고 있으며, 당신은 곱슬 브레이스 표기법의 방법으로 그들을 만들 수 있습니다.
자바 스크립트에서 객체 PHP의 연관 배열에 거의 같습니다
그것은 그들 내부 저장 데이터를 제공합니다.
>> 그러나 훨씬 강력 자바 스크립트에서 당신은 매우 쉽게 기능을 연결할 수 있습니다
객체의 내부, 그리고 다른 언어에서이 작업을 수행 할 수 있지만하면,
우리가 보게 될이 상당히 일반적인 패러다임입니다.
즉,이 객체는, 특히 Zamyla 누가, 학생을 나타냅니다
그리고, 개념이에서 구문 다른 유사합니다.
의 실제 파일에서 자바 스크립트를 사용 봅시다.
스크립트 태그가 아웃이 변합니다.
우리는 스타일 태그를 본 우리는 다른 HTML 태그를 봤어요.
스크립트 태그는 실제로 어떤 자바 스크립트 코드를 포함합니다.
우리가 어떤 소스 코드를 미리 만든이 곳이 어디 어플라이언스로 가자.
나는 웹 사이트에 아직 게시하지 않은,하지만 난 수업 후에 할 수 있습니다.
의는 blink.html을이 하나를 열어 보자.
위로 1990 년대에 깜짝 태그라는 HTML 태그는 그대로가 발생했습니다
이는 인터넷에서 가장 멋지고 남용 태그 중 하나
당신은 어떤 1990 년대 스타일의 웹 페이지를 방문하고, 이런 식으로 깜박이는 텍스트를 표시 시작 했죠된다
후작 태그의 결과는, 그 텍스트 이렇게 계속했다.
세상은 실제로 웹 표준에 합의했다 몇 번 중 하나
전반적으로 모든 사람들이 몇 년 전에 깜짝 태그를 죽였어.
하지만 우리는 당신이 가진 힘의 시위로 자바 스크립트와 함께 부활 할 수
당신은 웹 페이지의 내부 프로그램을 작성할 수 있습니다 때.
먼저의이 새로운 콘텐츠를 통해 건너 뛰고 이전에만 집중합시다.
>> 다음은이 예에서 기존의 것들입니다.
나는 HTML 태그, 머리 태그 및 제목 태그가 있습니다.
그럼 난 사업부 여기 body 태그를 가지고있는 리콜은 페이지의 사각형 부서입니다
난에 "인사"의 임의의 고유 한 ID를 제공 한 것은
그냥 제가 고유를 참조하는 방법이, 그 아주 간단한 텍스트가 있습니다 :
안녕하세요, 세계.
지금 당신은 나를이 파일의 상단까지 스크롤하고 새 기능을 보자.
새로운 최대 톱의 첫 번째 문제는, 스크립트 태그입니다
그리고 내부의 스크립트 태그 통지 나 함수를 선언했습니다.
PHP 꽤 유사한 자바 스크립트에서 함수를 선언하려면,
당신은 그대로 함수에게 함수의 다음 이름, 괄호를 작성
그리고 아마도 몇 가지 인자가 모든이 있다면.
, 그리고는 평소처럼 내 둥근 브레이스이있어, 이제 우리는 약간 새로운 코드를
하지만이 무슨 뜻인지 알아 보자.
VAR 사업부 그래서이 나에게라는 변수 div를 제공 의미합니다.
나는 foo를 신고 할 수도 있지만, 난 그게 사업부라고하고 싶어
두 번째로 맑은 될 것입니다 이유.
그럼 자바 스크립트로 판명 -이 내 웹 페이지에 포함 된 자바 스크립트 코드입니다 -
문서라는 종류의 특별한 전역 변수가 있습니다.
자바 스크립트는 실제로 객체 지향 언어입니다.
우리는 그게 뭘 뜻을 같이 50에 자세히로 이동되지 않습니다
하지만 지금은 객체가 구조체처럼 거의 것을 알고있다.
최초의 문제 중 하나를 설정하면 우리는 다시 길을 걸 본 것
어디에서 우리는 구조체에 많은 정보를 넣어
마찬가지로, 브라우저와 함께 제공되는 특별한 구조체를 문서입니다
웹 페이지가 제공됩니다. 내가 만든 게 아니예요.
이 문서 구조의 내부,하지만 당신은 데이터뿐만 아니라이
뿐만 아니라 기능을 가지고 있습니다.
>> 그리고 언제든지 당신은, 내부 객체, 구조의 내부 기능이
그것은 방법이라. 그러나 같은 일입니다.
방법은 너무 다른 내부에서 일어나는하는 기능입니다.
이 특별한 전역 변수는 문서라는 것을 의미합니다 따라서
기능은 그대로 그을 수행 getElementById를 촉구했다.
당신 DOM에서 요소 문서 객체 모델 트리, 얻을 것이다
이 경우 인사에서 누구 ID입니다.
즉, 우리가 데이터 구조에 소요 된 모든 시간은 놀이에 있습니다.
우리가 좀 전에했던 DOM의 사진,
페이지 내가이 사진에 사업부가 있다면, 조금 다른, 비록
어떤 document.getElementById 나에게 돌아올 것이라고하는 것은 효과적으로 포인터가 될 것입니다
나무, 나무에있는 사각형에 대한 참조의 직사각형 있습니다.
그래서 그게 실제로 이러한 기능 중 하나를 호출의 의미입니다.
이 경우 다시는 사업부입니다. 이 몸이나 제목 없습니다.
그래서 그때 지금이라는 변수 사업부의 내부를이 있다는 사업부와 알아 보자.
당신이 동적으로 페이지의 CSS를 조정 할 수있는 능력을 자바 스크립트로 밝혀졌다.
지금까지, 우리는 제한된이라도 한 CSS, 모든, 스타일 속성에
또는 우리는 CSS 어디 다른 넣었습니까?
버릇이 하나어요. 파일의 맨 위에있는 스타일 태그에.
또는 3 위는에 있었습니까?
>> 외부 파일이 있는데. CSS.
그래서 그 우리가 CSS 지금까지 한 3 장소입니다
하지만 그 댓가가 우리가 열심히 모든 것을 코딩 한 것입니다.
우리 CSS가 될 것을 설교하기 전에 pset 7로 내렸다대로 결정, 우리는 결정했다.
귀하의 CSS를 변경하려는 경우 그러나, 당신은 실제로 할 수
일단 실제 프로그래밍 언어가 있습니다.
CSS, HTML - 프로그래밍 언어 없습니다. 자바 스크립트입니다.
그럼 빨리 당신이 나무에서 그 사각형 중 하나를 갖고있는 것이 밝혀
DOM라고, 그것은 자체 그것의 내부에 일부 데이터가 있습니다.
그래서 난 나무에서 움켜있는 div는 우리가 안에 속성을 뭐라고 부를 있습니다
스타일라고하고, 스타일 속성 자체가 가시성라는 속성이 있습니다.
전 단지 CSS 사용자의 설명서를 찾는하여이 문제를 알게 될 것입니다.
이 말 않는 가시성 CSS 속성이가 있다는 사실을 알아가집니다.
그것은 표시 여부, 표시 여부 무언가를합니다.
그리고 당신이 어떻게 그런이 있습니다.
이 사업부의 가시성이 숨겨져 경우, 프로그램 부탁 해요
내가 무엇을 할 수 변경하려면 어떻게해야합니까? 공개됩니다.
이 페이지의 가시성이 숨겨져 있지 않은 경우 다른 논리적 나는 숨겨진하려면 어떻게해야합니까.
나는이 표시 및 숨김 파일과 보이는 것들과 보이지 않는하지 왜 아무 생각이 없습니다.
이 길을 따라 가난한 디자인 결정했습니다.
하지만 그 참 CSS의 opposites 있습니다 가시성과 숨겨진.
모든이와 오프, 그것이 켜고 내 파일의 CSS를 변경을 의미합니다 않습니다
특정 사업부에 대한.
다시 한 번,이 깜박라는 기능입니다. 깜박 기능은 언제라고?
그것은 또 다른 특별한 전역 변수라는 창이있을거야 밝혀
문서 정신에 유사하지만 문서가 웹 페이지를 말합니다 반면 것은
DOM 트리처럼, HTML 당신은 서버에서 전송
창은 주위의 크롬, 주소 표시 줄, 제목 표시 줄을 의미합니다
귀하의 웹 페이지 그딴거의 모든.
>> 그리고 윈도우 객체가 setInterval이라는 그것의 특별한 기능 내부를 가지고 밝혀
그 방법은 우리가 말한 않습니다.
이 간격을 설정합니다 -이 경우에는 모든 500 밀리 초 -
하고 추측을, 어떤 500 밀리 초마다 할거야?
그렇게 기능 깜박를 실행하는거야.
그리고 여기에 좋은 것은 우리가했던 적이에도 불구 우리가 C에서이 작업을 수행 수 있다는 것입니다.
C는 주변 기능을 전달할 수 함수 포인터라는 걸이 있나요
인수 있습니다.
마찬가지로 자바 스크립트에서 또 다른 함수에 함수의 이름을 전달할 수 있습니다.
그리고 내가하는 일이납니다. 이 짓도 안할거야.
나는 깜짝 후 괄호를 입력하면, 그 깜박이는 함수를 호출 의미 할 것입니다.
내가 그들을 생략하면 그 깜박이는 기능입니다 뜻이
그래서 setInterval은 모든 500 밀리 초 호출 할 수 있습니다.
그래서 최종 결과는 그게 끔찍하지만, 내가 로컬 호스트에 가서 blink.html로 이동하는 경우이다
지금은 또 한번, 또 한번 이런 일이 있었는지 있습니다.
그리고 실제로 요소를 검사하는 경우, 우리가이를 볼 수 있는지 보자.
나를 요소를 검사하자, 저를 조금 아래로 스크롤 해
내가 여기에 요소를 선택할 수 있으며, 크롬의 검사의 DOM 내부를 확인합니다.
그것은 문자 그대로 앞뒤로마다 500 밀리 초를 변경있어.
우리는 우리의 친구 네이트에 가면
혹시 간격으로이 제대로 작동하는지, 비슷한 생각을 궁금해, 경우
하지만 네이트가 실제로 여기이 특정 경우에 색을 매우 효율적으로 사용하고 있습니다.
그래서 더 많은 우리가 실제로 이걸 할 수 있습니까?
의 다른 예를 열고 무언가를 시도해 봅시다
그 프로그램 일을 깜박하는 것보다 훨씬 더 유용합니다.
나 오늘 우리의 양식 디렉토리로 이동하여 form0로 가자.
이것은 내가 할 수있는 추한 형태가했다
이 날 그냥 브라우저에서의 모습을 보여 드릴게요.
>> 나 로컬 호스트 / 형태로 이동이 form0입니다 봅시다.
이, 비밀번호, 이메일에 대한 몇 가지 필드를 가진 슈퍼 추한 HTML 양식입니다
비밀번호를하고 일부 용어 및 조건에 동의하는 약간의 확인란을 선택합니다.
내가이 양식을 방문하고 난 당신에게 내 이메일 주소를 제공하지 않으려면 캐치는,
나는 어쩌면 약관에 동의하고 싶지 않아요, 등록 클릭 할 수 있습니다
그리고 어쨌든 저를 통해 할 수 있습니다.
이 dump.php라는 바보 같은 PHP 파일을 제출 발생합니다.
그것을 행하는 모든 단지 진단 목적을 위해 $ _GET의 내용을 인쇄합니다.
그게 지금 사용자가 제출 한 거죠.
그러나 우리가 실제로 사용자의 양식 제출을 확인하려는 것 같아요.
저 버전 1에 가자.
이 form1.html입니다. 단지 나쁜 같이 심미적를 확인하지만 얼마나 멋진납니다.
나는 협력하지 않고 등록을 클릭하면, 나는 화가나.
"당신은 귀하의 이메일 주소를 입력해야합니다."
괜찮아요. 그래서 내가 그걸 해보자. malan@harvard.edu 그럼. 나는 암호가 필요하지 않습니다.
등록하십시오. "당신이 암호를 입력해야합니다." 괜찮아요.
그래서 진홍의 암호를 제공합니다. 등록하십시오.
"비밀번호가 일치하지 않습니다." 지금은 진홍색 여기에 입력해야합니다.
실수하는 확인 했어요. 등록하십시오.
"당신은 이용 약관에 동의해야합니다." 괜찮아요. 거기에 동의합니다. 등록하십시오.
그리고 지금 저에게 저기 진단 결과를 보여줍니다.
>> 그럼 무슨 일이 일어난 거지?
우리는 양식 제출을 확인하려면이 기능을 했어.
당신이 pset 7로 다이빙을 한 경우 사실, 사과 기능이있어
그 화면에 메시지와 함께 사용자의 소리하기가 매우 쉽습니다.
나는 약간 다른 메커니즘, 알림 기능을 사용
그 말은 아주 못생긴 사용자 메시지를 만드는 것이므로시 웃으며있어 기능을하지 않습니다.
하지만 내가 여기서 뭘 알아 보자.
이 form1.html입니다, 그리고 내가 꽤 익숙한 구문을 가지고주의 사항 :
body 태그, 폼 태그, 액션 속성, 메소드 속성입니다.
하지만 내 형태 편의를​​ 위해 고유 ID를 제공 한 것을.
그럼 난 누구의 유형 텍스트입니다 이메일 필드를, 있어요
그의 종류의 타입 암호 암호 확인 필드에있는 암호 필드
그리고 그의 이름은 여기에 동의합니다 확인란이 유형 확인란이 있습니다.
그리고 제가 제출 버튼이있어.
하지만 좀 더 내가 갖고있는 것에 상단에있는 확인합니다.
우선, 스크립트 태그의 또 다른 사용은 있어요.
당신이 방금 CSS와 같은 다른 파일에 일부 자바 스크립트 코드가 경우를 포함시킬 수 있습니다.
그리고 당신은 스크립트 소스와 그런 짓을, 그리고 난 분명히 연결 중이 발견
매우 긴 경로에 googleapis.com하지만 누구의 파일 이름은 jquery.min로 끝나는하기
최소. JS.
jQuery를는 자바 스크립트를 만드는 자바 스크립트를 위해 초대형 인기 라이브러리
모든 이상 사용자 친화적 사용합니다.
그것은 효과적으로 사실상의 표준이 될거야.
그래서, 당신이 만날 건지하지만하면, 순수 자바 스크립트 이라기보다는하지 않습니다
그것은 많은 CS50 라이브러리와 마찬가지로 자바 스크립트의 상단에 라이브러리 레이어입니다
낮은 수준의 C 코드의 상단에, 현실은 거의 인터넷에 모든 사람이 그것을 사용합니다.
따라서 이것들은 훈련 바퀴 없습니다. 이것은 단지 가장 최근 연습입니다.
지금 내 자신의 스크립트 태그입니다 아래의 것을, 그리고 내가 여기서 무슨 짓을했는지 확인합니다.
그것은 jQuery를가 뭔가 조금 고급 않는 밝혀졌다.
자바 스크립트는 달러 기호를 가지고 있지만 의미가 있습니다.
>> 그들은 문자 A 또는 B 또는 C. 같다
jQuery를 단순히 사실에 여유로운 청구의 대회 나 정렬을 채택하고 있습니다
$는 자신의 특별한 상징는 않습니다.
당신은 스크립트 태그로 여기에 글로벌 자바 스크립트 파일을로드 할 수 있도록 즉시
당신은 $라고 특별한 전역 변수에 액세스 할 수 있습니다.
그것은 더 적절하게 jQuery를라고하지만, $만큼 섹시 해 보이지 않는.
그러나 $는 특별한 의미가 없습니다. PHP에서는 특별한 의미를했다.
당신은 변수의 앞에가 있었다.
이것은 단지 사람들이에 걸린 섹시한 것입니다.
무슨 일이 일어나고있는 거죠?
나는 jQuery를 함수 내 전역 변수 문서를 지나고 있는데 공지 사항
그럼 내가 전화 했어. 준비.
어떤 jQuery를 본질적으로 당신이 어떤 바닐라 자바​​ 스크립트 일들을 할 수 있습니다 않습니다
문서 객체 같은 창 개체,
그리고 당신은 jQuery를 함수에 전달하면 -
다시 정확하게 말하면,이 jQuery를 호출하는 기능입니다 -
그게 무엇을 그에게 문서의 특별한 버전을 반환
그게과 관련된 더 많은 기능이 있습니다.
따라서 원시 자바 스크립트에 더 준비 기능은 없습니다
하지만 먼저 jQuery를 함수에 문서를 통과하면,
당신에게 문서 개체의 특별한 버전을 반환
그게 더 멋진 기능을 가지고 있습니다.
사람들이 왜 좋아하는 고. 단지 우리가 볼 것 등 할 일이 쉬워집니다.
따라서이 코드 줄은 무엇을 의미합니까?
문서가 준비되면 코드의이 줄은 뜻이 -
즉, 한 번 브라우저가이 파일 맨 아래로를 읽고 이루어집니다 -
가서 다음과 같은 기능을 실행합니다.
어떻게 자바 스크립트에서 정말 흥미로운 - 그리고 PHP도이가 -
익명 기능입니다.
자바 스크립트에서는 전혀 이름이 없지만 사람들이 몸이 어떻게 기능을 선언 할 수 있습니다.
여기서 무슨 일이 있었는지 확인합니다.
>> 이 준비라는 기능이며, 단지 다음을 수행 의​​미
전체 웹 페이지가 준비되면, 그것은 모든 서버에서 읽을 된 경우.
당신은 무엇을 하시겠습니까? 나는 코드의 덩어리를 실행하고 싶습니다.
우리가 바로이 코드를 실행하지 않도록주의하십시오.
내가 이걸 생략하면이 코드의 다음 줄을 실행 시작 즉시 의미 할 것입니다.
하지만 안돼, 안돼, 안돼 말은 사실이 같은 익명 함수에서이 작업을 싸다
수단은 아직 실행하지 않는, 결국를 호출합니다.
우리는 우리의 이전 양식의 예에서 잠시 전에이 것을 보았다.
우리는 500 밀리 초 후, 결국 어떤 함수를 호출 했어? 깜박.
같은 생각 했어요.
이 조금 이상 보이는 경우에도 다시, 지금 신앙에 대해 수행
결국이라고 익명의 함수를 선언하는
당신은 단순히 기능을 () {작성
그래서 코드를 우리는 결국 실행하는거야? 다음.
, 이건 너무 작은 새 보이지만,이 jQuery를 기능이라고 의미
이 이제 바로 가기입니다.
물론 화면의 맨 아래에있는 HTML 조각 일부 나무 표현이 있습니다.
그것은이 아닙니다. 이 페이지는이여보세요, 세계 예를 들어보다 더 흥미 롭습니다.
하지만이 HTML에 해당하는 일부 나무가 있습니다.
그것은 재귀 함수의 일부 종류를 구현해야 할 목에 통증이있을 것
루트 노드에서 시작하고 누구의 ID 등록이 노드를 찾을 수 있습니다.
우리는 말 그대로이이기 때문 그래서 jQuery를하는 것은 매우 쉽습니다.
어서 날 데려가 어떤 사업부 나에게 어떤 양식이든 HTML 요소
등록 ID가 있습니다.
이 document.getElementById ( '등록')와 동일합니다.
>> 왜 jQuery를 같은 사람이 그래?
이 입력 짧아 때문입니다. 그러나이게 전부입니다. 이 같은 생각이야.
나에게 누구의 ID 등록이 태그를 가져 오기.
그리고 결제 방법으로 그런 일이 태그는, 제출 될 때,
가서이 코드를 실행합니다.
어느 우리가 양식 유효성 검사를하고있는 방법에 대해 지금 살펴은 봅시다.
문법은 처음에 보면 이상한이지만, 무슨 일이야?
이 코드 줄은 사실 있다면 자신의 이메일 주소를 제공하는 사용자에 소리거야.
따라서이 코드 라인은 무엇입니까?
$는 jQuery를 의미합니다. 이제이를 확인합니다.
이 CSS 같은 가지입니다.
당신은 아직 CSS로 다이빙 한 경우이 누구의 ID 등록이 요소를 것을 의미합니다.
공간은 어린이 또는 그의 이름은 입력이 등록의 후손을 찾을 것을 의미합니다.
그리고 대괄호 안의 무언가가 좀 필터입니다.
그리고이 이상한 모양 경우에도이는 누구 ID 등록되는 양식으로 이동을 의미합니다
그의 이름은 이메일입니다의 입력 요소 내부로 이동
다음의 값이 될 한테 무슨 일이 일어나 든 그 값을 얻을 -
asdf을 그게 내가 입력 한면 그게 내가 타이핑 또는 malan@harvard.edu 모든 이죠.
폼의 이메일 필드 == 아무것도의 값은, 사용자의 소리면.
다른 암호 필드의 값은 == 아무것도 사용자에 소리없는 경우.
>> 다른 암호 필드의 값이 확인 필드의 값을 동일하지 않을 경우,
다른 폼 요소 있었는지, 사용자의 소리.
그리고 마지막으로 -이 사람은 역시 그 자신의 새로운 문법을 가지고
하지만 일단 당신이 그것을 본 적이 적어도 좀 더 합리적이에요 -
누구의 ID 등록이 양식은 그의 이름 계약입니다 입력 요소가 다른 경우
그리고이 선택되어, 가서 사용자의 소리.
그래서 난 완전히이 한눈에 완전히 압도적입니다 인정합니다.
이 새로운 구문이 많이 있습니다. 그러나 jQuery를 모든 패턴 이러한 종류의를 따릅니다.
그리고 사실대로 말하면, 나는 몇 분 전까지 만이 존재 몰랐어요.
난 "확인란이 jQuery를 체크인하는 경우 어떻게 확인합니까?"검색해
그렇게하고 여러 가지 방법이 있기 때문에이 방법은 구문입니다
실제 원시 자바 스크립트 코드를.
문제 설정 7 첫 페이지가 강조 수 있도록,
pset 7 매우 자신을 부트 스트랩의 운동입니다
어디에서 우리는 희망, pset를 해결하는 데 개념적 프레임 워크를 제공하고 있습니다.
>> 그러나 자주 웹 디자인의 경우는, 정말 주변에 찔러 줄 것인지는 당신에게 달렸
오랫동안 당신이 그들을 인용으로 웹에서 코드 조각 및 예제를 포함
첫 번째 시트에 조건에 따라,
그리고 알고 있습니다 HTML, CSS, 자바 스크립트, 심지어 SQL 학습
정말 우리가이 훈련 바퀴를 벗고 시작으로에서 가정 운동 할 운명입니다.
그리고 당신도이 브라우저로 할 수있는 더 많은 것을가 알고 있습니다.
이러한 요소 대부분의 내부 이벤트 핸들러라는 다른 일이 있습니다.
그리고 우리가 사람을 바라 보았다하더라도, onsubmit과 onready라고
당신은 onkeydown, onkeyup 같은 일을 할 수
사용자가 키를 닿을 때처럼, 당신은 그와 키까지들을 수 있습니다.
Gmail은 키보드 단축키가 있습니다.
Google은 작성을위한 C와 같은 키보드 단축키를 구현합니까?
그들은이 onkeypress 또는 onkeyup과 onkeydown처럼,라고하는 등 이벤트를 들어 봐.
지금까지 일부 메뉴 옵션 위로 마우스를 기웃 거리고 한 경우
갑자기, 좋아, 모든 메뉴가 나타납니다 또는 그래픽의 색상이 변경됩니다
어떻게하는거야?
onready 또는 onsubmit에 들어보다는, 당신은 onmouseover 나 onmouseout에 들어.
>> 그래서 짧은에,이 아주 간단한 기초 우리는 오늘날의 표면을 발굴하기 시작 한
우리는, 점점 더, 당신이, 수요일에에 더에 잠수 할것입니다
이미 잘 알고 있다는 것을의 종류를 구현하는 힘.
그럼이 종료하게, 우리는 수요일에이 계속 진행됩니다.
>> [CS50.TV]