0:00:00.639,0:00:03.875 მაქვს ვებგვერდი, "ოჰ არას" სურათით, 0:00:03.875,0:00:07.862 რომელიც გაგიჟებულია, რომ[br]სამყაროს დასასრული მალე დადგება -- 0:00:07.862,0:00:10.473 კონკრეტულად, 500 წამში. 0:00:10.473,0:00:13.356 მინდა ეს ვებგვერდი[br]უფრო სასარგებლო გავხადო, 0:00:13.356,0:00:16.934 ეს რიცხვი[br]გადავაქციო რეალურ უკუთვლად, 0:00:16.934,0:00:20.781 ისე რომ, ვიზიტორებმა[br]შეძლონ ნახვა, რამდენი დრო დარჩათ. 0:00:20.781,0:00:23.934 ახლა, როცა გავაცოცხლეთ ვებგვერდი, 0:00:23.934,0:00:26.708 სტრატეგია შემდეგია: უნდა ვიპოვოთ [br]რაღაც ელემენტი მასში, 0:00:26.708,0:00:29.303 შემდეგ რაღაც შევცვალოთ[br]ამ ელემენტში 0:00:29.303,0:00:32.779 და ეს რამდენჯერმე გავიმეოროთ. 0:00:32.779,0:00:37.693 პირველ რიგში უნდა ვიპოვო მთვლელი[br]მისი ID-თი 0:00:37.693,0:00:39.490 ეს მარტივია. 0:00:39.490,0:00:44.417 [ბეჭდავს] 0:00:47.536,0:00:51.612 შემდეგ, უნდა დავწერო ფუნქცია, რომელიც[br]უკუსვლით დაითვლის. 0:00:51.612,0:00:54.588 [ბეჭდავს] 0:00:54.588,0:00:56.856 შემდეგ კი -- 0:00:56.856,0:01:01.217 მინდა რომ 'textContent' იყოს 0:01:01.217,0:01:03.755 წინა რიცხვს მინუს ერთის ტოლი. 0:01:03.755,0:01:06.798 'textContent' რეალურად იქნება ხაზი, 0:01:06.798,0:01:09.947 რომელიც გვინდა გადავქციოთ რიცხვად 0:01:09.947,0:01:12.853 ამის გაკეთება 'parcfloat()' -ით შეგვიძლია. 0:01:12.853,0:01:15.753 შემდეგ კი შეგვიძლია გამოვაკლოთ ამას 1. 0:01:15.753,0:01:21.541 დაბოლოს, ჩვენ ამ ფუნქციის გამოძახება[br]გარკვეული ინტერვალით გვინდა, 0:01:21.541,0:01:25.328 ანუ, წამში X-ჯერ. 0:01:25.328,0:01:30.415 ამის გაკეთებაში გამოგვადგება[br]'window.setInterval()' 0:01:30.415,0:01:33.691 ეს ფუნქცია მოითხოვს ორ არგუმენტს: 0:01:33.691,0:01:38.096 გამოძახების ფუნქციას და მილიწამების[br]რაოდენობას, რომლის გასვლისასაც 0:01:38.096,0:01:40.885 ეს ფუნქცია ისევ უნდა გამოვიძახოთ. 0:01:40.885,0:01:43.369 გამოძახების ფუნქციის განსაზღვრა შეგვიძლია[br]ისევე, 0:01:43.369,0:01:46.809 როგორც ის ღონისძიების დამსწრეთათვის[br]განვსაზღვრეთ: სახელით 0:01:46.809,0:01:49.350 შემდეგ კი - ახლა ის ძალიან სწრაფია, 0:01:49.350,0:01:51.827 იმიტომ რომ[br]წამების არგუმენტი არ განგვისაზღვრავს-- 0:01:51.827,0:01:55.250 გვინდა, რომ ეს მილიწამების გარკვეული[br]რაოდენობის გასვლისას მეორდებოდეს; 0:01:55.250,0:01:58.520 კერძოდ, ერთხელ წამში რომ მეორდებოდეს.[br]ანუ, ყოველ ათას მილიწამში 0:01:58.520,0:02:01.558 იმიტომ რომ წამში ათასი მილიწამია. 0:02:01.558,0:02:05.218 მშვენირია, ახლა ყოველ წამში[br]თითო რიცხვით გადადის უკან. 0:02:05.218,0:02:10.245 490 წამი დაგრჩა, რომ მაქსიმალურად ბევრი[br]რამ ისწავლო! 0:02:10.245,0:02:15.036 კიდევ ერთი ფუნქცია, რომელსაც ხანდახან[br]'setInterval'-ის მაგივრად ვიყენებთ 0:02:15.036,0:02:17.227 არის 'setTimeout' 0:02:17.227,0:02:21.782 ახლა შევცვლი და დააკვირდით, [br]თუ შეამჩნევთ სხვაობას 0:02:21.782,0:02:23.681 ერთი წამიც მოიცადეთ.. 0:02:23.681,0:02:28.297 აი, ახლა, ალბათ, ხედავთ, რომ როცა [br]ვიყენებთ 'setTimeout' ფუნქციას 0:02:28.297,0:02:33.881 ბრაუზერი ფუნქციას იძახებს ერთხელ,[br]გამეორების გარეშე. 0:02:33.881,0:02:38.705 ასე რომ, ამ შემთხვევაში ეგ არ გამოგვადგება. 0:02:38.705,0:02:42.212 მაგრამ სხვა შემთხვევებში შეიძლება ძალიან[br]სასარგბელო ფუნქცია აღმოჩნდეს: 0:02:42.212,0:02:45.866 მაგალითად, თუ ჩვენს მომხმარებლებს[br]გამაფრთხილებელ ბანერს ვუჩვენებთ 0:02:45.866,0:02:48.090 და გვინდა, რომ იგი 10 წამში გაქრეს. 0:02:48.090,0:02:52.894 ახლა ეს ისევ 'setInterval'-ად[br]შევცვალოთ. 0:02:52.894,0:02:56.507 ახლა, როცა მსგავს ანიმაციებს ვტესტავთ 0:02:56.507,0:02:59.990 უნდა ვნახოთ, როგორ გამოიყურება ის თავიდან [br]ბოლომდე; 0:02:59.990,0:03:02.460 მაგალითად, უნდა ვნახოთ, რა ხდება[br]როცა მივიღებთ 0-ს. 0:03:02.460,0:03:05.258 ძალიან დიდი ხანი მოგივწევს ცდა 0:03:05.258,0:03:07.206 რაც მოსაწყენია; 0:03:07.206,0:03:10.581 ამიტომ საწყის წერტილად ავიღოთ 5 0:03:10.581,0:03:12.538 და ვნახოთ, რა მოხდება. 0:03:12.538,0:03:16.732 ოთხი, სამი, ორი, ერთი, ნული... 0:03:16.732,0:03:19.289 მინუს ერთი, მინუს ორი. 0:03:19.289,0:03:21.878 ეს ცოტა უცნაურია. 0:03:21.878,0:03:26.292 როცა სამყარო დასრულდება, უბრალოდ უნდა[br]ავფეთქდეთ და შევწყვიტოთ თვლა. 0:03:26.292,0:03:30.111 გამოდის, რომ ჩვენ გვინდა 0:03:30.111,0:03:32.734 შევაჩეროთ უკუთვლა, როცა ის ნულამდე მივა. 0:03:32.734,0:03:36.319 ამის გაკეთება 'if' პირობით შეგვიძლია,[br]ფუნქციის შიგნითვე. 0:03:36.319,0:03:42.227 პირველ რიგში, მიმდინარე დრო ცვლადად[br]უნდა შევინახო, იმიტომ რომ 0:03:42.227,0:03:44.517 მას არაერთხელ გამოვიყენებთ. 0:03:44.517,0:03:47.513 ავიღოთ ეს, ჩავსავთ აქ; 0:03:47.513,0:03:51.273 და ჩავანაცვლოთ ეს ცვლადით 'currentTime' 0:03:51.273,0:03:55.564 ახლა უნდა შევქმნა 'if' პირობა, 0:03:55.564,0:04:01.097 რომლის გამოც ტექსტი შეიცვლება მხოლოდ მაშინ[br]როცა 'currentTime' 0-ზე მეტია. 0:04:01.097,0:04:04.938 ერთის გამოკლება მხოლოდ ამ შემთხვევაში გვინდა. 0:04:04.938,0:04:10.497 ეს აქ უნდა გადავიტანო, შიგნით. 0:04:10.497,0:04:15.012 ეს მუშაობს.. თუმცა ამ მიდგომას ერთი დიდი[br]ნაკლი აქვს. 0:04:15.012,0:04:19.444 ბრაუზერი გააგრძელებს ფუნქციის გამოძახებს [br]ყოველ ერთ წამში, 0:04:19.444,0:04:21.559 სანამ ვებ-გვერდი ღიაა. 0:04:21.559,0:04:24.842 ბრაუზერებს კი უამრავი სხვა საქმე აქვთ [br]გასაკეთებელი 0:04:24.842,0:04:27.581 და ტყუილ-უბრალოდ არ უნდა გამოვაძახებინოთ[br]ფუნქცია. 0:04:27.581,0:04:30.935 ამიტომ, სინამდვილეში გვინდა, რომ[br] 0:04:30.935,0:04:35.585 ბრაუზერმა შეწყვიტოს ფუნქციის გამოძახება,[br]როცა იგი ნულს გაუტოლდება. 0:04:35.585,0:04:40.384 ამას ახალი მეთოდის გამოყენებით ვიზამთ,[br]რომელსაც ჰქვია 'window.clearInterval()'.\ 0:04:40.384,0:04:47.354 ჩავსვათ ეს 'window.clearInterval()' აქ - [br]'else' -ის ველში. 0:04:47.354,0:04:52.189 ახლა ფუნქციას უნდა მივაწოდოთ არგუმენტი,[br]რომ გაიგოს, რომელი ინტერვალი უნდა შეწყვიტოს. 0:04:52.189,0:04:55.799 გვერდზე ხომ ბევრი სხვადასხვა ინტერვალი [br]შეიძლება, გვქონდეს. 0:04:55.799,0:04:58.902 იმისთვის, რომ გავიგოთ, რომელი[br]ინტერვალია შესაწყვეტი, 0:04:58.902,0:05:02.983 'setInterval'-ის შედეგი უნდა შევინახოთ ცვლადად. 0:05:02.983,0:05:07.816 ახლა მაქვს მთვლელის ცვლადი, [br]რომელიც შემიძლია აქ ჩავსვა 0:05:07.816,0:05:11.122 და გავაგებინო ფუნქციას, რა უნდა შეწყდეს[br]როცა მთვლელი მივა 0-მდე: 0:05:11.122,0:05:15.571 უნდა დასრულდეს განახლება [br]და ამ ფუნქციის გამოძახება. 0:05:15.571,0:05:19.332 ყოველი ანიმაციისთვის ზედმიწევნით ზუსტად[br]უნდა განსაზღვროთ, 0:05:19.332,0:05:21.695 რა პირობით უნდა ჩერდებოდეს იგი. 0:05:21.695,0:05:26.132 და კი, შეიძლება ისეთი ანიმაცია შექმნათ,[br]რომელიც უსასრულოდ უნდა გრძელდებოდეს, 0:05:26.132,0:05:29.023 მაგრამ ეს რამე გასაკუთრებით კარგი უნდა იყოს 0:05:29.023,0:05:33.600 იმიტომ რომ თქვენი ბრაუზერი რეალურად[br]იტვირთება, როცა იძახებს რაღაც ფუნქციას. 0:05:33.600,0:05:37.600 ახლა კი დროა ავაფეთქოთ ეს სამყარო!