随着商城小程序的出现,许多网站能够用简单、高效的小程序商城源码(如音频、视频、地理位置等)取代JavaScript插件和代码。商城小程序标签使开发人员的工作更容易,同时提高了页面加载时间和站点性能。特别是小程序商城网络存储,因为它允许用户的浏览器在不使用服务器的情况下存储用户数据。
源码及演示:xcxyms.top
商城小程序源码主要使用PHP等服务器端语言来存储用户数据并将其从一个页面传递到另一个页面。使用JavaScript后端框架,如Node.js,我们可以达到同样的目标。然而,在本教程中,我们将逐步向您展示如何使用HTML5和一些小JavaScript代码构建一个购物车。本教程中技术的其他用途还包括在网站和原生移动应用上存储用户首选项、用户最喜欢的内容、愿望列表和用户设置(如名称和密码),而无需使用数据库。
许多高流量小程商城序依赖复杂的技术,如服务器集群、DNS负载平衡器、客户端和服务器端缓存、分布式数据库和微服务来优化性能和可用性。实际上,动态网站的主要挑战是从数据库中获取数据,并使用服务器端语言(如PHP)来处理它们。但是,远程数据库存储应该只用于必要的网站内容,如文章和用户凭证。类似于cookie,用户首选项等功能可以存储在用户的浏览器中。同样,当您构建一个本地移动应用程序,您可以使用商城小程序 web存储与本地数据库来提高应用程序的速度。因此,作为前端开发人员,我们需要探索的方式我们可以利用小程序商城源码存储的力量在我们的应用程序在开发的早期阶段。
我曾经是一个开发大型社交网站的团队的一员,我们大量使用小程序网络存储。例如,当用户登录时,我们将散列后的用户ID存储在小程序会话中,并使用它在受保护的页面上对用户进行身份验证。我们还使用这个功能来存储所有新的推送通知——比如新的聊天消息、网站消息和新的提要——并将它们从一个页面传递到另一个页面。当一个社交网站获得高流量时,完全依赖服务器来进行负载平衡可能不起作用,所以你必须识别用户的浏览器可以处理的任务和数据,而不是你的服务器。
项目背景 #
购物车允许网站访问者查看产品页面并将商品添加到购物车中。访问者可以查看他们所有的条目并更新他们的购物车(例如添加或删除条目)。为了实现这一点,网站需要存储访问者的数据,并将它们从一个页面传递到另一个页面,直到访问者进入结帐页面并进行购买。存储数据可以通过服务器端语言或客户端语言来完成。使用服务器端语言,服务器承担数据存储的重量,而使用客户端语言,访问者的计算机(桌面、平板电脑或智能手机)存储和处理数据。每种方法都有其优缺点。在本教程中,我们将重点介绍一种简单的基于HTML5和JavaScript的客户端方法。
注:为了能够遵循本教程,HTML5, CSS和JavaScript的基本知识是必需的。
商城小程序存储概述 #
商城小程序web存储允许web应用程序在浏览器本地存储能够在浏览器会话中存活的值,就像cookie一样。不像cookies需要在每次HTTP请求时发送,web存储数据从来不会传输到服务器;因此,web存储在web性能上优于cookie。此外,cookie允许每个域只存储4kb的数据,而web存储每个域至少允许5mb的数据。商城小程序存储就像一个简单的数组,将键映射到值,它们有两种类型:
●会话存储将数据存储在一个浏览器会话中,直到浏览器或浏览器选项卡关闭时数据才可用。从同一窗口打开的弹出窗口可以看到会话存储,同样可以在同一窗口内的iframes。但是,来自同一来源(URL)的多个窗口不能看到彼此的会话存储。
●本地存储将数据存储在浏览器中,没有过期时间。这些数据对具有相同来源(域)的所有窗口都可用,甚至在浏览器或浏览器选项卡重新打开或关闭时也是如此。
目前所有主要的web浏览器都支持这两种存储类型。请记住,不能将存储数据从一个浏览器传递到另一个浏览器,即使两个浏览器都在访问相同的域。
建立一个基本的购物车 #
为了构建购物车,我们首先创建一个小程序页面,其中包含一个简单的购物车来显示商品,以及一个简单的表单来添加或编辑购物车。然后,我们添加HTML web存储到它,然后是JavaScript编码。尽管我们使用的是HTML5本地存储标记,但所有步骤都与HTML5会话存储相同,可以应用于HTML5会话存储标记。最后,我们将为那些对使用jQuery感兴趣的人介绍一些jQuery代码,作为JavaScript代码的替代。
添加商城小程序源码本地存储到购物车 #
我们的HTML页面是一个基本的页面,头部有外部JavaScript和CSS引用的标记。 <!doctype html> <html lang="en-US"> <head> <title>HTML5 Local Storage Project</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="rating" content="General"> <meta name="expires" content="never"> <meta name="language" content="English, EN"> <meta name="description" content="Shopping cart project with HTML5 and JavaScript"> <meta name="keywords" content="HTML5,CSS,JavaScript, html5 session storage, html5 local storage"> <meta name="author" content="dcwebmakers.com"> <script src="Storage.js"></script> <link rel="stylesheet" href="StorageStyle.css"> </head>
下面是出现在页面主体中的HTML内容: <form name="ShoppingList"> <fieldset> <legend>Shopping cart</legend> <label>Item: <input type="text" name="name"></label> <label>Quantity: <input type="text" name="data"></label> <input type="button" value="Save" onclick="SaveItem()"> <input type="button" value="Update" onclick="ModifyItem()"> <input type="button" value="Delete" onclick="RemoveItem()"> </fieldset> <div id="items_table"> <h2>Shopping List</h2> <table id="list"></table> <label><input type="button" value="Clear" onclick="ClearAll()"> * Delete all items</label> </div> </form>
将JavaScript添加到购物车 #
我们将在onload()事件中创建并调用JavaScript函数doShowAll(),以检查浏览器支持,并动态创建显示存储名值对的表。
$( window ).load(function() { doShowAll(); }); 或者,你也可以使用JavaScript的onload事件,把它添加到JavaScript代码中: window.load = doShowAll (); $( window ).load(function() { doShowAll(); });
在doShowAll()中,如果CheckBrowser()函数首先计算浏览器支持,那么它将在页面加载期间动态创建购物列表表。可以在JavaScript循环中迭代存储在本地存储中的键-值对的键(属性名),如下所示。该方法根据存储值动态填充表,以显示存储在本地存储中的键值对。
/* =====> Checking browser support. //This step might not be required because most modern browsers do support HTML5. */ //Function below might be redundant. function CheckBrowser() { if ('localStorage' in window && window['localStorage'] !== null) { // We can use localStorage object to store data. return true; } else { return false; } }
注意:您或您的框架将拥有创建新DOM节点和处理事件的首选方法。为了保持清晰和重点,我们的示例使用了. innerhtml和内联事件处理程序,尽管我们通常在生产代码中避免使用这些处理程序。
// Dynamically populate the table with shopping list items. /Step below can be done via PHP and AJAX, too. function doShowAll() { if (CheckBrowser()) { var key = ""; var list = "<tr><th>Item</th><th>Value</th></tr>\n"; var i = 0; //For a more advanced feature, you can set a cap on max items in the cart. for (i = 0; i <= localStorage.length-1; i++) { key = localStorage.key(i); list += "<tr><td>" + key + "</td>\n<td>" + localStorage.getItem(key) + "</td></tr>\n"; } //If no item exists in the cart. if (list == "<tr><th>Item</th><th>Value</th></tr>\n") { list += "<tr><td><i>empty</i></td>\n<td><i>empty</i></td></tr>\n"; } //Bind the data to HTML table. //You can use jQuery, too. document.getElementById('list').innerHTML = list; } else { alert('Cannot save shopping list as your browser does not support HTML 5'); } }
总结 #
在本教程中,我们学习了如何使用HTML5 web存储和JavaScript一步一步地构建商城小程序源码。我们已经了解了如何使用jQuery来替代JavaScript。我们还讨论了用于处理购物车中的数组和对象的stringify和parse等JSON函数。您可以在本教程的基础上添加更多特性,比如在JavaScript多维数组中存储数据的同时添加产品类别和子类别。此外,您可以用jQuery替换整个JavaScript代码。