<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Видео 'Использование KnockoutJS в приложении HTML5'</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <meta name="description" content="A screencast that introduces the basics of using jQuery and KnockougJS in an HTML5 application in NetBeans IDE">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

<!--
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-->

        <h1>Видео 'Использование KnockoutJS в приложении HTML5'</h1>
        <p>В этой серии видеоруководств демонстрируется создание клиентского приложения HTML5 с использованием jQuery и KnockoutJS. В рамках этого руководства будет рассмотрена привязка элементов DOM к модели данных, определение обработчиков событий и получение данных от служб JSON и REST.</p>
                    <p>Автор: Джон Джулион-Цесарелли (John Jullion-Ceccarelli)</p>
        <table>
            <tr>
                <td class="valign-top">

                    
                    
                    
                    

                    <h3>Загрузить / смотреть видео полностью:</h3>
                    <ul>
                        <li><a href="http://bits.netbeans.org/media/knockout1-basic-bindings.mp4">Knockout - Часть 1. Основные привязки</a> (15 МБ)</li>
                        <li><a href="http://bits.netbeans.org/media/knockout2-json.mp4">Knockout - Часть 2. JSON</a> (12 МБ)</li>
                        <li><a href="http://bits.netbeans.org/media/knockout3-click-handler.mp4">Knockout - Часть 3. Обработчик событий click</a> (19 МБ)</li>
                    </ul>


                    
                </td>

                <td width="486" class="valign-top align-center">
<h2>Knockout - Часть 1. Основные привязки</h2>
 <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>                   
    <div id="player1" >
        <center>
	    <div id="flashContent1"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/knockout1-basic-bindings.mp4';
		jwplayer('flashContent1').setup({
	                'id': 'flashContentId',
	                'width': '530',
	                'height': '340',
	                'autostart': 'true',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });	
	});
    </script>
 
 <h2>Knockout - Часть 2. JSON</h2>
 <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>                   
    <div id="player2" >
        <center>
	    <div id="flashContent2"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/knockout2-json.mp4';
		jwplayer('flashContent2').setup({
	                'id': 'flashContentId',
	                'width': '530',
	                'height': '340',
	                'autostart': 'false',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });	
	});
    </script>
 <h2>Knockout - Часть 3. Обработчик событий click</h2>
 <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>                   
    <div id="player3" >
        <center>
	    <div id="flashContent3"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/knockout3-click-handler.mp4';
		jwplayer('flashContent3').setup({
	                'id': 'flashContentId',
	                'width': '530',
	                'height': '340',
	                'autostart': 'false',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });	
	});
    </script>


                    </td>
            </tr>
            
            <tr>
                <td colspan="2">
                    
                    
                    <br style="clear:both;">
                    <div class="feedback-box">
                        <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Video%20of%20Using%20KnockoutJS%20in%20an%20HTML5%20Application">Отправить отзыв по этому учебному курсу</a>
                    </div>
                    <br style="clear:both;">
                </td>
            </tr>
        </table>
        <h2>Связанные ссылки</h2>

        <ul>
            <li><a href="html5-gettingstarted.html">Начало работы с приложениями HTML5</a></li>
            <li><a href="https://blogs.oracle.com/netbeanswebclient/">Блог NetBeans Web Client</a></li>
            <li><a href="../../trails/php.html">Учебная карта по PHP и HTML5</a></li>

        </ul>
    </body>
</html>
