Month: 12月 2021

Mongodb 聚合 排序 分页出现重复记录问题。

如下语句:

db.Videos.aggregate([ { $match : { $and : [{"TypeName":"C"}, {op:{$elemMatch:{"oid":1}}}, {"Properties.cateid":{$in:["f93c3508-6a97-4ee5-bb17-841603cee15a"]}}] } }, {$sort : {"CreateTime":-1} } ,{$skip:10},{$limit:10}])

当数据的CreateTime有一样的时候,翻页会出现重复记录。

解决方法

看起来排序的CreateTime字段不是唯一的,因此在后续执行中顺序可能不同。要解决此问题,可以向$sort. 添加一个_id字段。由于_id总是独一无二的,它可以成为一个很好的选择。尝试:

{"$sort":{
    "CreateTime":-1,
    "_id": -1
}}

使用内核 TLS 和 SSL_sendfile() 提高 NGINX 性能

传输层安全 (TLS) 是一种非常流行的加密协议。在内核 (kTLS) 中实现 TLS 通过显着减少用户空间和内核之间的复制操作需求来提高性能。

结合 kTLS 和sendfile()意味着数据在传递到网络堆栈进行传输之前直接在内核空间中加密。这消除了将数据复制到用户空间以通过 TLS 库加密,然后再返回内核空间进行传输的需要。kTLS 还支持将 TLS 处理卸载到硬件,包括将 TLS 对称加密处理卸载到网络设备。…

        

单页应用模式和多页应用模式

最近学习VUE,了解到 “Vue.js 提供了一个官方命令行工具,可用于快速搭建大型单页应用”  之前做过项目,改过项目,基本都是小部分单页,大部分多页的模式,也没有在这方面进行细致的学习,这次通过学习VUE进行了细致的区分与学习

部分来源于:

https://www.zhihu.com/question/20792064

http://www.php.cn/js-tutorial-401276.html

https://blog.csdn.net/u013291076/article/details/53667382

《单页Web应用:JavaScript从前端到后端》点击下载pdf  如404  请联系博主私发

 

目录

单页应用模式与多页应用模式的对比图

单页应用的定义?

单页应用的优缺点

单页应用给传统网站带来的好处?

单页应用的特点

单页应用给传统网站带来的缺点

关于单页Web应用的现状和未来发展


 

单页应用模式与多页应用模式的对比

webx5

单页模式打开方式:justep.shell.showpage();

多页模式打开方式:window.loacation.href = require.tourl();

单页应用的定义?

单页应用是指在浏览器中运行的应用,它们在使用期间不会重新加载页面。像所有的应用一样,它旨在帮助用户完成任务,比如“编写文档”或者“管理Web服务器”。可以认为单页应用是一种从Web服务器加载的富客户端。

单页Web应用,顾名思义,就是只有一张Web页面的应用。浏览器一开始会加载必需的HTML、CSS和JavaScript,之后所有的操作都在这张页面上完成,这一切都由JavaScript来控制。因此,单页Web应用会包含大量的JavaScript代码,复杂度可想而知,模块化开发和设计的重要性不言而喻。

单页应用的优缺点

单页应用给传统网站带来的好处?

相对于传统网站,我们认为单页应用的主要好处是:

  • 它提供了更加吸引人的用户体验。单页应用可以做到一举两得:

单页应用和多页应用理解

多页面

多页面应用:每次页面跳转,后台都会返回一个新的HTML文档,就是多页面应用。

在以往传统开发的应用(网站)大多都是多页面应用,路由由后端来写。

页面跳转=》返回HTML,优点:首屏时间快,SEO效果好,缺点是页面切换慢。

首屏时间快?访问页面,服务器只需要返回一个HTML文件,这个过程就经历了一个HTTP请求,请求响应回来,页面就能被展示出来。

SEO(搜索引擎排名)效果好?搜索引擎能识别HTML的内容,根据内容进行排名。

页面切换慢:每一次切换页面都需要发起一个HTTP请求,假设网络较慢就会出现卡顿情况。

单页面

单页应用:用vue写的项目是单页应用,刷新页面会请求一个HTML文件,切换页面的时候,并不会发起新的请求一个HTML文件,只是页面内容发生了变化

vue.js原理:JS感知URL变化,当URL发生变化后,使用JS动态把当前的页面内容清除掉,再把下一个页面的内容挂载到页面上。此时的路由就不是后端来做了,而是前端来做,判断页面到底显示哪一个组件,再把以前的组件清除掉使用新的组件。就不会每一次跳转都请求HTML文件。

页面跳转 =》 JS渲染,优点页面切换快,缺点首屏时间稍慢,SEO差

页面跳转不需要去做HTML文件的请求,节约HTTP请求发送的时延。

SEO差?搜索引擎只认识HTML内容不认识JS内容。单页应用的渲染都是靠JavaScript渲染出来的。搜索引擎不好识别排名。

最后更新于 2022年6月26日 …

算法分析—大O、大Ω、大θ

前言

在算法的学习中,最开始便是要学习算法的分析。学习算法分析时,我们便会接触到这么几个符号:大O、大Ω、大θ,常常让人难以理解。

在通常的算法分析时,我们可以明白,在输入规模较小,各种算法之间的时间消耗并无明显差别。只有当输入规模较大时,对各个算法之间消耗差别的对比与分析才有意义。所以上面几个符号便常用于表达当规模逐渐趋向于一个极大数时的算法复杂度。

在表示一个算法时间复杂度时,我们常用如 T(n)=O(n^2) 的形式表示,而在渐进分析中的 “=” 更倾向于 “” 的意思。打个比方:渐进表达式 f(n) = O(g(n)) 所表达的意思是 O(g(n)) = [ f(n),h(n),…,g(n) ], f(n) ∈ O(g(n))

一、大O表示法

f(x) = O(g(x)) 表示的含义是f(x)以g(x)为上界

大O是我们在分析算法复杂度时最常用的一种表示法。当函数的大小只有上界,没有明确下界的时候,则可以使用大O表示法,该渐进描述符一般用与描述算法的 最坏复杂度f(x) = O(g(x))正式的数学定义:存在正常数c、n、n0,当 n>n0 的时,任意的

算法中的大O表示法

算法中的大O表示法

1.算法概念

计算机科学中的算法指的就是计算机执行的指令。

算法是计算机处理信息的本质,因为计算机程序本质上是一个算法来告诉计算机确切的步骤来执行一个指定的任务,如计算职工的薪水或打印学生的成绩单。

一般地,当算法在处理信息时,会从输入设备或数据的存储地址读取数据,把结果写入输出设备或某个存储地址供以后再调用。

               -----------       
      输入 --> |   算法    | --> 输出
               -----------  

算法的核心是创建问题抽象的模型和明确求解目标,之后可以根据具体的问题选择不同的模式和方法完成算法的设计。

2. 时间复杂度

算法的时间复杂度是指算法需要消耗的时间资源。

一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做:

T(n) = O(f(n))

算法执行时间的增长率与f(n) 的增长率正相关,称作渐近时间复杂度(Asymptotic Time Complexity),简称时间复杂度。

3. 空间复杂度

算法的空间复杂度是指算法需要消耗的空间资源。

其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。

同时间复杂度相比,空间复杂度的分析要简单得多。

4. 大 O 表示法

Symfony 6: PHP 8 Native Types & 为什么我们需要你

Symfony 2.0 以来,Symfony 的最大变化即将到来,这是一个非常激动人心的时刻:Symfony 6 在其所有可能的方法上都具有原生 PHP 类型。这将极大地推动 PHP 开源社区中的类型安全!Nicolas和 Alexander已经断断续续地工作了 2 年,以创造可能的最佳升级体验。
现在,距离稳定版发布还有 2.5 个月,是大放异彩的时候了!特别是如果您维护任何开源项目(甚至没有直接链接到 Symfony),我们很乐意听取您的意见,以确保升级不会非常困难。