精华内容
参与话题
问答
  • JqGrid 中文帮助文档 api

    千次下载 热门讨论 2010-04-20 13:09:34
    JqGrid 中文 帮助文档 api jQuery
  • Elasticsearch之索引和文档、文档API

    千次阅读 2018-12-26 16:08:24
    文档Document 用户存储在es中的数据文档,相当于mysql的表中的一行,Json结构形式,由字段组成,常见数据类型如下: 字符串:text、keyword,text是分词,keyword是不分词的 数值型:long、integer、short、byte...

    pushpin 文档Document

    用户存储在es中的数据文档,相当于mysql的表中的一行,Json结构形式,由字段组成,常见数据类型如下:

    • 字符串:text、keyword,text是分词,keyword是不分词的
    • 数值型:long、integer、short、byte、double、float、half_float、scaled_float
    • 布尔:boolean
    • 日期:date
    • 二进制:binary
    • 范围类型:integer_range、float_range、long_range、double_range、date_range

    books  文档的元数据:用于标注文档的相关信息

    • _index:文档所在的索引名
    • _type:文档所在的类型名
    • _id:文档唯一id
    • _score:相关性算分
    • _uid:组合id,有_type和_id组成(从6.x开始_type不再起作用,同_id一样)
    • _source:文档的原始json数据,可以从这里获取每个字段的内容
    • _all:整合所有字段内容到该字段,默认下禁用

    books  文档相关API

    es的欢迎语就是"you know,for search",所以es的主要api就是集中在查询一块,下面所讲的只是最简单、最基础的一部分,后续还会深入es的search api,如Query DSL、es的Java Api等。

    1、创建文档,test_index1为索引名,mydoc指上面说到的_type,均为自定义,1指_id,如果未指定,会自动生成

    2、查询文档,其中的_search表示查询该索引下的全部文档记录

    3、批量操作文档,第一列的index表示新增,如果存在则覆盖,其余的两个是update修改和delete删除

    4、删除文档

    5、一次性查询多个文档


    pushpin 索引 Index

    由具有相同字段的文档列表组成,相当于mysql中的表。

    • 每个索引都有自己的mapping定义,用于定义字段名和类型
    • 索引中存储着具有相同结构的文档

    books  节点Node:一个Elasticsearch的运行实例,集群的其中一个构成单元。


    books  正排索引:维护文档id到内容、单词的关联关系,例如

    books  倒排索引:维护单词到文档id的关联关系,例如

    这个时候比如来个需求,获取包含"领事馆"的文档id,则先根据倒排索引得到包含领事馆的文档id为1,再根据正排索引找到相应的文档内容,并将其返回即可。因为在es的索引中,每一个文档对应的数据结构都是json结构形式,每个json中的字段都会维护自己的倒排索引(未开启的除外,比如设置了index=false),所以查找起来也非常快。


    上一篇:Elastic Search入门与安装

    下一篇:Elastic Search之倒排索引

    展开全文
  • 微信支付文档API

    千次阅读 2017-03-02 16:35:37
     https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6&ptlang=2052&ADUIN=471400541&ADSESSION=1488415747&ADTAG=CLIENT.QQ.5509_.0&ADPUBNO=26652
    展开全文
  • ElasticSearch文档API

    千次阅读 2016-12-27 15:18:23
    ElasticSearch 5.x 创建索引 index API


    文档API(Document APIs)

    本节介绍以下CRUD API

                                         单文档API:

                                                            Index API (创建索引)

                                                            GET API (获取索引)

                                                            Delete API (删除索引)

                                                            Update API (更新索引)

                                         多文档API:

                                                            Multi GEt API (批量获取索引)

                                                            BulkAPI (批量操作索引)

    注意:所有CRUD API都是单索引API。 index参数接受单个索引名称或指向单个索引的别名。


    创建索引(Index API)

        创建索引API允许调用者将一个Json类型的数据存入到一个特定的索引下,并使其可以被检索到。

        构建Json数据

        这里有几种构建Json数据的的方法。

               手动构建Json类型的字节数组(byte[])或字符串。

               使用将自动转换为Json的Map。

               使用第三方类库将你的实体序列化成Json。

                使用内部工具类XContentFactory.jsonBuilder()。

    在Client内部,所有类型都被转换为字节数组(byte[]  (所以String也是被转换为byte[])),因此,如果对象已经是这种形式,这样使用时最好的,

    jsonBuilder是高度优化的Json生成器,它可以直接构造一个字节数组(byte[])。


    手动构建Json

    手动构建Json是很简单的,但是有一点你必须注意,你需要将日期编码成ElasticSearch可识别的格式。例如:

    String json = "{" +
            "\"user\":\"kimchy\"," +
            "\"postDate\":\"2013-01-30\"," +
            "\"message\":\"trying out Elasticsearch\"" +
        "}";


    使用Map构建Json

    Map 是一个 键值对(Key:value)的集合,它本身就能代表Json。

    Map<String, Object> json = new HashMap<String, Object>();
    json.put("user","kimchy");
    json.put("postDate",new Date());
    json.put("message","trying out Elasticsearch");

    序列化你的实体

    请添加Jackson Databind到你的项目中,这样你就可以使用Jackson来序列化你的实体为一个JSON。你可以使用ObjectMapper来序列化你的实体。

    import com.fasterxml.jackson.databind.*;
    
    // instance a json mapper
    ObjectMapper mapper = new ObjectMapper(); // create once, reuse
    
    // generate json
    byte[] json = mapper.writeValueAsBytes(yourbeaninstance);


    使用 ElasticSearch的帮助类

    ElasticSearch提供一个工具类来构建Json内容。

    import static org.elasticsearch.common.xcontent.XContentFactory.*;
    
    XContentBuilder builder = jsonBuilder()
        .startObject()
            .field("user", "kimchy")
            .field("postDate", new Date())
            .field("message", "trying out Elasticsearch")
        .endObject()

    注意: 你可以使用startArray(String) 和endArray()方法添加数组。 顺便提醒一下,field方法支持多种对象,你可以添加数字,日期,甚至其他的XContentBuilder对象。

    如果你想查看构建好的Json内容,你可以使用string()方法

    String json = builder.string();

    创建索引

    下面的例子将为名字为twitter的索引项添加一条Json数据,将这条数据添加到类型tweet下面,并指定其id为1.

    import static org.elasticsearch.common.xcontent.XContentFactory.*;
    
    IndexResponse response = client.prepareIndex("twitter", "tweet", "1")
            .setSource(jsonBuilder()
                        .startObject()
                            .field("user", "kimchy")
                            .field("postDate", new Date())
                            .field("message", "trying out Elasticsearch")
                        .endObject()
                      )
            .get();

    注意: 你可以构建一个JSON格式的字符串,并且不指定它的ID,这样创建索引同样会成功,ElasticSearch将会自动生成一个ID。

    String json = "{" +
            "\"user\":\"kimchy\"," +
            "\"postDate\":\"2013-01-30\"," +
            "\"message\":\"trying out Elasticsearch\"" +
        "}";
    
    IndexResponse response = client.prepareIndex("twitter", "tweet")
            .setSource(json)
            .get();

    IndexResponse会给你一个添加结果的报告:

    // Index name
    String _index = response.getIndex();
    // Type name
    String _type = response.getType();
    // Document ID (generated or not)
    String _id = response.getId();
    // Version (if it's the first time you index this document, you will get: 1)
    long _version = response.getVersion();
    // status has stored current instance statement.
    RestStatus status = response.status();


    如果想要获得更多信息,请查看REST的创建索引的文档。

    REST 创建索引返回的JSON内容:

    {
        "_shards" : {
            "total" : 2,
            "failed" : 0,
            "successful" : 2
        },
        "_index" : "twitter",
        "_type" : "tweet",
        "_id" : "1",
        "_version" : 1,
        "created" : true,
        "result" : created
    }

    _shards提供了索引操作过程中的复制过程信息。

                 total 指示对多少分片进行操作(主分片和备份分片)。

                 failed  操作失败的分片数和失败信息。

                 successful  操作成功的分片数。

                 

    获取索引

    GetResponse 可以通过索引的ID获取一个JSON格式的数据,下面的例子,将获取twitter索引下的tweet类型的id为1的一条数据。

    GetResponse response = client.prepareGet("twitter", "tweet", "1").get();


    如果想要获得更多信息,请查看REST的获取索引的文档。

    REST 获取索引返回的JSON内容:

    {
        "_index" : "twitter",
        "_type" : "tweet",
        "_id" : "1",
        "_version" : 1,
        "found": true,
        "_source" : {
            "user" : "kimchy",
            "date" : "2009-11-15T14:12:12",
            "likes": 0,
            "message" : "trying out Elasticsearch"
        }
    }

    上述结果包括我们希望检索的文档的_index,_type,_id和_version,如果能查找的到的话,它还包含_source.


    删除索引

    prepareDelete 方法允许根据ID从特定的索引中删除一条数据,一下示例将从twitter索引的tweet下删除ID为1的数据。

    DeleteResponse response = client.prepareDelete("twitter", "tweet", "1").get();

    如果想要获得更多信息,请查看REST的删除索引的文档。

    REST 删除索引返回的JSON内容:

    {
        "_shards" : {
            "total" : 10,
            "failed" : 0,
            "successful" : 10
        },
        "found" : true,
        "_index" : "twitter",
        "_type" : "tweet",
        "_id" : "1",
        "_version" : 2,
        "result": "deleted"
    }

    更新索引

    你可以创建一个UpdateRequest发送给客户端(client):

    UpdateRequest updateRequest = new UpdateRequest();
    updateRequest.index("index");
    updateRequest.type("type");
    updateRequest.id("1");
    updateRequest.doc(jsonBuilder()
            .startObject()
                .field("gender", "male")
            .endObject());
    client.update(updateRequest).get();

    或者使用prepareUpdate()方法:

    client.prepareUpdate("ttl", "doc", "1")
            .setScript(new Script("ctx._source.gender = \"male\"" 《1》  , ScriptService.ScriptType.INLINE, null, null))
            .get();
    
    client.prepareUpdate("ttl", "doc", "1")
            .setDoc(jsonBuilder()               《2》
                .startObject()
                    .field("gender", "male")
                .endObject())
            .get();
           《1》 你的脚本, 它也可以是存储在本地的脚本文件的名称,如果你要使用本地存储的脚本,你需要将使用 ScriptService.ScriptType.FILE。

            《2》 将存在的字段合并到现有的数据中。

    请注意,你不能同时调用setScript和setDoc。


    通过脚本更新

    通过脚本更新数据:

    UpdateRequest updateRequest = new UpdateRequest("ttl", "doc", "1")
            .script(new Script("ctx._source.gender = \"male\""));
    client.update(updateRequest).get();

    通过合并数据更新

    更新API支持传递部分数据,这些传递的数据将被合并到原有数据中(简单递归合并,内部对象合并,替换核心“键/值”或者数组)。如下例:

    UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
            .doc(jsonBuilder()
                .startObject()
                    .field("gender", "male")
                .endObject());
    client.update(updateRequest).get();

    更新插入

    ElasticSearch支持更新插入,如果需要更新的文档不存在,upsert的内容将会被应用到新建的数据上。

    IndexRequest indexRequest = new IndexRequest("index", "type", "1")
            .source(jsonBuilder()
                .startObject()
                    .field("name", "Joe Smith")
                    .field("gender", "male")
                .endObject());
    UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
            .doc(jsonBuilder()
                .startObject()
                    .field("gender", "male")
                .endObject())
            .upsert(indexRequest);     《1》         
    client.update(updateRequest).get();

               《1》 如果数据不存在,indexRequest将会被添加。

    如果数据 index/type/1 已经存在,我们执行上述代码后,数据将改变成这样:

    {
        "name"  : "Joe Dalton",
        "gender": "male"    《1》    
    }

               《1》这条数据来自于更新请求。


     如果 index/type/1 不存在, 我们将得到一条新的数据:

    {
        "name" : "Joe Smith",
        "gender": "male"
    }


    批量获取

    批量获取API允许基于它们的索引(index),类型(type)和id来获得文档的列表:

    MultiGetResponse multiGetItemResponses = client.prepareMultiGet()
        .add("twitter", "tweet", "1")       《1》    
        .add("twitter", "tweet", "2", "3", "4")  《2》
        .add("another", "type", "foo")          《3》
        .get();
    
    for (MultiGetItemResponse itemResponse : multiGetItemResponses) { 《4》
        GetResponse response = itemResponse.getResponse();
        if (response.isExists()) {                      《5》
            String json = response.getSourceAsString();  《6》
        }
    }


              《1》单一id查询
              《2》 根据相同索引/类型的一组id查询。

              《3》你同样可以获得其他索引下的数据。

              《4》遍历请求的返回

              《5》验证请求的数据是否存在

               《6》获取_source的值


    批量操作API

    批量API允许在一个请求中索引和删除多个文档。 例如

    import static org.elasticsearch.common.xcontent.XContentFactory.*;
    
    BulkRequestBuilder bulkRequest = client.prepareBulk();
    
    // either use client#prepare, or use Requests# to directly build index/delete requests
    bulkRequest.add(client.prepareIndex("twitter", "tweet", "1")
            .setSource(jsonBuilder()
                        .startObject()
                            .field("user", "kimchy")
                            .field("postDate", new Date())
                            .field("message", "trying out Elasticsearch")
                        .endObject()
                      )
            );
    
    bulkRequest.add(client.prepareIndex("twitter", "tweet", "2")
            .setSource(jsonBuilder()
                        .startObject()
                            .field("user", "kimchy")
                            .field("postDate", new Date())
                            .field("message", "another post")
                        .endObject()
                      )
            );
    
    BulkResponse bulkResponse = bulkRequest.get();
    if (bulkResponse.hasFailures()) {
        // process failures by iterating through each bulk response item
    }

    使用批量处理器

    BulkProcessor类提供了一个简单的接口,可根据请求的数量或大小,或在给定期限后自动刷新批量操作。

    想要使用BulkProcessor,需要先创建一个它的实例:

    默认参数:
                      setBulkActions是1000
                      setBulkSize是5MB
                      setFlushInterval 不设置
                      setConcurrentRequests 为 1
                      setBackoffPolicy 重试8次,每次间隔50MS,总等待时间大约为5.1秒。

    import org.elasticsearch.action.bulk.BackoffPolicy;
    import org.elasticsearch.action.bulk.BulkProcessor;
    import org.elasticsearch.common.unit.ByteSizeUnit;
    import org.elasticsearch.common.unit.ByteSizeValue;
    import org.elasticsearch.common.unit.TimeValue;
    
    BulkProcessor bulkProcessor = BulkProcessor.builder(
            client,                                              //添加你的ElasticSearch 客户端
            new BulkProcessor.Listener() {
                @Override
                public void beforeBulk(long executionId,
                                       BulkRequest request) { ... }  //此方法在批量执行之前调用,
    								//例如,您可以使用request.numberOfActions()查看numberOfActions,
    
                @Override
                public void afterBulk(long executionId,
                                      BulkRequest request,
                                      BulkResponse response) { ... } //此方法在批量执行之后调用,例如,你可以使用response.hasFailures()方法查								//看失败的调用。
    
                @Override
                public void afterBulk(long executionId,
                                      BulkRequest request,
                                      Throwable failure) { ... } // 此方法在处理失败或者抛出异常时调用。
            })
            .setBulkActions(10000)  			//指定每次处理多少请求,此处是10000次。
            .setBulkSize(new ByteSizeValue(5, ByteSizeUnit.MB))  // 每次刷新到请求的字节数, 此处是5M
            .setFlushInterval(TimeValue.timeValueSeconds(5))     //无论请求量多少 我们都5秒刷新一次请求(即每五秒将所有请求执行)。
            .setConcurrentRequests(1) 			//设置并发请求数。 值为0表示只允许执行单个请求。 值为1表示在累积新的批量请求时允许执行							//1个并发请求。
            .setBackoffPolicy(
                BackoffPolicy.exponentialBackoff(TimeValue.timeValueMillis(100), 3)) //设置回退策略,当请求执行错误时,可进行回退操作,
    				//TimeValue.timeValueMillis(100)执行错误后延迟100MS,重试三次后执行回退。
    				//要禁用回退,请传递BackoffPolicy.noBackoff()。
            .build(); 
    


    添加请求
    创建完成后你就可以添加你的请求到BulkProcessor:

    bulkProcessor.add(new IndexRequest("twitter", "tweet", "1").source(/* your doc here */));
    bulkProcessor.add(new DeleteRequest("twitter", "tweet", "2"));

    关闭批量处理器:
    当所有文档都加载到BulkProcessor中后,我们可以使用awaitClose 或者 close 方法去关闭它:
    bulkProcessor.awaitClose(10, TimeUnit.MINUTES);

    bulkProcessor.close();

    两种方法都刷新任何剩余的文档,并禁用所有其他计划刷新(如果通过设置flushInterval进行调度)。调用awaitClose方法是,如果有正在执行的并发请求,awaitClose将会等待
    请求完成或者批量请求超时后,才会返回true,若在此过程中超出了awaitClose指定的等待时间,则返回false。close方法不会等待任何剩余的批量请求完成,并立即退出。

    在测试中使用BulkProcessor
    如果你使用ElasticSearch和BulkProcessor填充你的数据集,你最好将concurrentRequests 设置为0,这样你就能以同步方式执行刷新操作了:

    BulkProcessor bulkProcessor = BulkProcessor.builder(client, new BulkProcessor.Listener() { /* Listener methods */ })
            .setBulkActions(10000)
            .setConcurrentRequests(0)
            .build();
    
    // Add your requests
    bulkProcessor.add(/* Your requests */);
    
    // Flush any remaining requests
    bulkProcessor.flush();
    
    // Or close the bulkProcessor if you don't need it anymore
    bulkProcessor.close();
    
    // Refresh your indices
    client.admin().indices().prepareRefresh().get();
    
    // Now you can start searching!
    client.prepareSearch().get();

    
    
    
    
    展开全文
  • 微信小程序文档api

    千次阅读 2017-03-01 15:19:16
    http://bing.aliaii.com/wxopen/index.htm

    ​ 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。这个小程序的首页将会显示欢迎语以及当前用户的微信头像,点击头像,可以在新开的页面中查看当前小程序的启动日志。下载源码

    1. 获取微信小程序的AppID

    首先,我们需要拥有一个帐号,如果你能看到该文档,我们应当已经邀请并为你创建好一个帐号。注意不可直接使用服务号或订阅号的AppID。 利用提供的帐号,登录https://mp.weixin.qq.com ,就可以在网站的“设置”-“开发者设置”中,查看到微信小程序的AppID了。

    注意:如果我们不是用注册时绑定的管理员微信号,在手机上体验该小程序。那么我们还需要操作“绑定开发者”。即在“用户身份”-“开发者”模块,绑定上需要体验该小程序的微信号。本教程默认注册帐号、体验都是使用管理员微信号。

    2. 创建项目

    ​ 我们需要通过开发者工具,来完成小程序创建和代码编辑。

    ​ 开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的AppID,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。

    ​ 为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个quick start项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的demo。

    ​ 项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。

    3. 编写代码

    创建小程序实例

    ​ 点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是app.js、app.json、app.wxss这三个。其中,.js后缀的是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例

    ​ 下面我们简单了解这三个文件的功能,方便修改以及从头开发自己的微信小程序。

    ​ app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用MINA提供的丰富的API,如本例的同步存储及同步读取本地数据。想了解更多可用API,可参考API文档

    //app.js
    App({
      onLaunch: function () {
        //调用API从本地缓存中获取数据
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)
      },
      getUserInfo:function(cb){
        var that = this;
        if(this.globalData.userInfo){
          typeof cb == "function" && cb(this.globalData.userInfo)
        }else{
          //调用登录接口
          wx.login({
            success: function () {
              wx.getUserInfo({
                success: function (res) {
                  that.globalData.userInfo = res.userInfo;
                  typeof cb == "function" && cb(that.globalData.userInfo)
                }
              })
            }
          });
        }
      },
      globalData:{
        userInfo:null
      }
    })

    ​ app.json是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。更多可配置项可参考配置详解

    {
      "pages":[
        "pages/index/index",
        "pages/logs/logs"
      ],
      "window":{
        "backgroundTextStyle":"light",
        "navigationBarBackgroundColor": "#fff",
        "navigationBarTitleText": "WeChat",
        "navigationBarTextStyle":"black"
      }
    }

    ​ app.wxss是整个小程序的公共样式表。我们可以在页面组件的class属性上直接使用app.wxss中声明的样式规则。

    /**app.wxss**/
    .container {
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: space-between;
      padding: 200rpx 0;
      box-sizing: border-box;
    }

    创建页面

    ​ 在这个教程里,我们有两个页面,index页面和logs页面,即欢迎页和小程序启动日志的展示页,他们都在pages目录下。微信小程序中的每一个页面的【路径+页面名】都需要写在app.json的pages中,且pages中的第一个页面是小程序的首页。

    ​ 每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。

    ​ index.wxml是页面的结构文件:

    <!--index.wxml-->
    <view class="container">
      <view  bindtap="bindViewTap" class="userinfo">
        <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image>
        <text class="userinfo-nickname">{{userInfo.nickName}}</text>
      </view>
      <view class="usermotto">
        <text class="user-motto">{{motto}}</text>
      </view>
    </view>

    ​ 本例中使用了<view/><image/><text/>来搭建页面结构,绑定数据和交互处理函数。

    ​ index.js是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。

    //index.js
    //获取应用实例
    var app = getApp()
    Page({
      data: {
        motto: 'Hello World',
        userInfo: {}
      },
      //事件处理函数
      bindViewTap: function() {
        wx.navigateTo({
          url: '../logs/logs'
        })
      },
      onLoad: function () {
        console.log('onLoad')
        var that = this
        //调用应用实例的方法获取全局数据
        app.getUserInfo(function(userInfo){
          //更新数据
          that.setData({
            userInfo:userInfo
          })
        })
      }
    })

    ​ index.wxss是页面的样式表:

    /**index.wxss**/
    .userinfo {
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    
    .userinfo-avatar {
      width: 128rpx;
      height: 128rpx;
      margin: 20rpx;
      border-radius: 50%;
    }
    
    .userinfo-nickname {
      color: #aaa;
    }
    
    .usermotto {
      margin-top: 200px;
    }

    ​ 页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖app.wxss中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用app.wxss中指定的样式规则。

    ​ index.json是页面的配置文件:

    ​ 页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖app.json的window中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用app.json中的默认配置。

    ​ logs的页面结构

    <!--logs.wxml-->
    <view class="container log-list">
      <block wx:for-items="{{logs}}" wx:for-item="log">
        <text class="log-item">{{index + 1}}. {{log}}</text>
      </block>
    </view>

    ​ logs页面使用<block/>控制标签来组织代码,在 <block/>上使用wx:for-items绑定logs数据,并将logs数据循环展开节点

    //logs.js
    var util = require('../../utils/util.js')
    Page({
      data: {
        logs: []
      },
      onLoad: function () {
        this.setData({
          logs: (wx.getStorageSync('logs') || []).map(function (log) {
            return util.formatTime(new Date(log))
          })
        })
      }
    })

    运行结果如下:

    4. 手机预览

    ​ 开发者工具左侧菜单栏选择"项目",点击"预览",扫码后即可在微信客户端中体验。

    展开全文
  • JAVADOC命令生成注释文档API

    千次阅读 2018-06-13 09:42:36
    输入javadoc -help 查看命令具体参数和帮助javadoc -d apidoc_directory -windowtitle 测试 -doctitle JAVADOC生成测试文档API -header 小爷的所有类 -author -version *.java//test1.java package TEST1; /** *****...
  • 1.下载 ApiPost 客户端 点击进入下载地址 2. 下载完客户端进行安装,选择安装目录,一路下一步就可以; 3.进入客户端 如下: 对应的位置写入接口的描述信息,接口的URL, 选择接口的请求头的类型 :表单 ...
  • Python--Numpy库函数文档API

    千次阅读 2018-08-09 10:04:09
    Numpy是科学计算库,是一个强大的N维数组对象ndarray,是广播功能函数。其整合C/C++.fortran代码的工具 ,更是Scipy、Pandas等的基础。在此对Numpy函数进行总结(包含注释) .ndim :维度&amp;...
  • Python--Matplotlib库函数文档API

    千次阅读 2018-08-09 10:19:47
    &amp;amp;lt;div class=&amp;quot;postBody&amp;quot;&amp;amp;gt; &amp;amp;lt;div id=&amp;quot;cnblogs_post_body&amp;quot; class=&amp;quot;blogpost-body&...am
  • Python--Sklearn库函数文档API

    千次阅读 2018-08-09 10:39:03
    官方文档中文版 scikit-learn 0.18 中文文档 快速入门用户指南 监督学习 Generalized Linear Models ( 广义线性模型 )Linear and Quadratic Discriminant Analysis ( 线性和二次判别分析 )Kernel ridge ...
  • React-Router4.0路由中文文档api

    万次阅读 2017-04-22 08:22:18
    http://618cj.com/react-router4-0%E8%B7%AF%E7%94%B1%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3api/
  • elasticsearch7.x文档API简介

    千次阅读 2019-09-29 22:09:02
    index、create、read、update、delete
  • ASDoc是adobe官方提供的ActionScript的API文档生成工具,现在已经集成在FlexBuilder3中;使用ASDoc工具可以生成和Adobe的ActionScript3帮助一样的文档,使用的方法如下:========== 本人操作成功的过程如下...火舞...
  • Java API文档 中文网页版

    万次下载 热门讨论 2007-03-21 14:25:52
    Java API文档中文版,欢迎下载!!
  • API、接口、协议、API端点

    千次阅读 多人点赞 2018-09-25 10:17:38
    1.API定义: 1)API 是用于构建应用程序软件的一组子程序定义,协议和工具。一套明确定义的各种软件组件之间的通信方法,实现和其他软件快速交互。 2)API 应用范围很广:从操作系统中简单的 fork() 到我们接触的...
  • Java JDK1.8 API 中文帮助文档免费下载

    万次阅读 多人点赞 2018-10-30 16:38:53
    最近在学习JAVA的过程中,需要用到API帮助文档。终于被我找到了免费的JDK1.8 API 中文帮助文档,希望对正在学习JAVA的您也有帮助! 下面上干货: 百度云:链接:http://pan.baidu.com/s/1nu6cdF7 密码:t3h0  ...
  • .Net 官方学习文档

    千次阅读 2016-11-21 16:50:30
    .Net 官方文档地址: https://docs.microsoft.com/zh-cn/dotnet/ 这里有C#入门基础、.Net CoreAPI、及.Net Framework API 等参考, 以及方面的文档汇总。
  • TensorFlow报错:AttributeError: module ‘tensorflow._api.v1.train’ has no attribute 'SummaryWriter’等 分析:版本更新,方法调用方式改变 解决方式: 报错 原方法 更改后方法 ...
  • 查看JAVA API以及JAVA源码的方法

    万次阅读 多人点赞 2018-06-05 01:27:07
    在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码 对于java的api,一般是在下面的网址中进行查看 ...
  • Android API中文文档

    千次下载 热门讨论 2010-10-13 16:19:31
    Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android API 中文文档 Android Android API 中文文档 中文文档Android API ...
  • Jersey 1.18 API文档

    千次阅读 2014-05-12 14:10:49
    Jersey 1.18 API文档我自己制作了Jersey 1.18 API CHM文档, 下载地址见: http://download.csdn.net/detail/chszs/7334869
  • Airflow 中文文档API 参考

    千次阅读 2018-11-29 18:08:10
    有关更多详细信息,请参阅BaseOperator文档。 有三种主要类型的运营商: 执行操作的操作员,或告诉其他系统执行操作的操作员 传输操作员将数据从一个系统移动到另一个系 传感器是某种类型的运算符,它将一直运行...
  • Etherscan API 中文文档

    千次阅读 2019-05-26 16:31:14
    点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读。 账号(Account) 账号及地址相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独说明。 获取单个账号余额 译者...
  • Java API文档

    千次阅读 2017-08-31 21:46:56
    Java API文档
  • 什么是RESTful API?

    万次阅读 多人点赞 2018-12-25 16:01:42
    提到RESTful API 大家势必或多或少听说过。但是什么是RESTful API ?如何理解RESTful API 呢?请大家耐心读完这篇文章,相信您读完后一定会有一个更好的理解。我个人认为,要弄清楚什么是RESTful API,首先要弄清楚...
  • JAVA - JDK 1.8 API 帮助文档-中文版

    万次阅读 多人点赞 2018-10-14 21:38:03
    JAVA - JDK 1.8 API 帮助文档-中文版 百度云链接: https://pan.baidu.com/s/1_7FFadw1a6J0qTfx2FzqPQ 密码: 41n4
  • NGUI API 离线文档

    千次下载 热门讨论 2013-01-08 11:31:01
    介于好多朋友在开发unity的时候用到NGUI插件 而NGUI的官网的速度还比较慢 这里共享一个NGUI的离线api文档 有用到的朋友可以参考
  • elastic search实战小demo:... 之前在 Elastic Search之Search API(Query DSL)、Elasticsearch之索引和文档API 文章中讲到过elastic search(以下简称es)的以下常用的原生api,本篇开始讲述如...
  • API文档规范

    万次阅读 2020-06-07 13:11:45
    API简介 在目前现有的项目中,web项目是前后援台分离开发的。后端工程师与前端工程师之间需要接口文档来定义数据传输协议、系统对外暴露接口需要文档来说明、系统之间相互调用需要文档来记录接口协议等等。对于一个...

空空如也

1 2 3 4 5 ... 20
收藏数 1,732,922
精华内容 693,168
关键字:

文档